摘要:解決虛擬環境下不能使用提升權限問題問題描述在虛擬環境下,執行某些命令需要有提升權限,會導致該條命令退出虛擬環境如啟動服務,需要監聽端口此時會提示權限不足,無法訪問端口。
解決Python虛擬環境下不能使用sudo提升權限問題 問題描述
在虛擬環境下,執行某些命令需要有sudo提升權限,會導致該條命令退出虛擬環境:
如啟動django 服務,需要監聽80端口:
$: python manage.py runserver 80 Performing system checks... System check identified no issues (0 silenced). March 15, 2018 - 07:43:40 Django version 2.0.3, using settings "helloworld.settings" Starting development server at http://127.0.0.1:80/ Quit the server with CONTROL-C. Error: You don"t have permission to access that port.
此時會提示權限不足,無法訪問80端口。
所以通過sudo提升命令權限:
$: ~/python3env/helloworld$ sudo python manage.py runserver 80 Traceback (most recent call last): File "manage.py", line 11, in"Couldn"t import Django. Are you sure it"s installed and " ImportError: Couldn"t import Django. Are you sure it"s installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
此時會提示沒有找到Django模塊,可是經過如下驗證,Django模塊安裝正常:
$: python Python 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import django >>> django.__version__ "2.0.3"
而使用sudo啟動python,會發現,Django模塊無法導入:
$: sudo python Python 2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import django Traceback (most recent call last): File "", line 1, in ImportError: No module named django
原來,在使用sudo執行命令的時候,該命令會退出當前虛擬環境執行:
$: sudo which python /usr/bin/python $: which python /home/hzc/python3env/venv/bin/python解決辦法
指定python路徑
$: sudo ../venv/bin/python manage.py runserver 80 Performing system checks... System check identified no issues (0 silenced). March 15, 2018 - 07:55:29 Django version 2.0.3, using settings "helloworld.settings" Starting development server at http://127.0.0.1:80/ Quit the server with CONTROL-C.
在腳本中指定python地址(局限于執行腳本)
#!/usr/bin/env python 更改前 #!/home/hzc/python3env/venv/bin/python 更改后
執行腳本:
$: sudo ./manage.py runserver 80 Performing system checks... System check identified no issues (0 silenced). March 15, 2018 - 08:02:48 Django version 2.0.3, using settings "helloworld.settings" Starting development server at http://127.0.0.1:80/ Quit the server with CONTROL-C.
?
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44619.html
摘要:另一個好處是,虛擬環境不需要管理員權限。當一個虛擬環境被激活后,程序的位置會被添加到中。比如,安裝到虛擬環境中,使用如下命令安裝過程會將和它的依賴集安裝到虛擬環境中。 簡介 在開發不同的應用時,我們可能需要不同的 Python 版本,同時可能還需要處理包的依賴、版本和間接權限問題。在同系統中,要解決這些問題往往非常棘手。在 Python 的開發環境中,為解決這樣的問題最常用的方法是使用...
摘要:站真是個學習的地方,竟發現了楊老師的部署視頻,楊老師的站主頁在此主頁有一系列的學習視頻,推薦干貨用于部署的項目主要用了提供后臺,所以靜態文件僅有部分的。接下來是部署和激活階段了。 吐吐槽 此篇blog將詳細記錄部署Django的每一個步驟,網上現有的教程實在太少太老了!好多坑!第一次嘗試后臺很懵,最坑的地方是安裝的wsgi部分模塊需要更新。B站真是個學習的地方,竟發現了楊老師的部署視頻...
摘要:站真是個學習的地方,竟發現了楊老師的部署視頻,楊老師的站主頁在此主頁有一系列的學習視頻,推薦干貨用于部署的項目主要用了提供后臺,所以靜態文件僅有部分的。接下來是部署和激活階段了。 吐吐槽 此篇blog將詳細記錄部署Django的每一個步驟,網上現有的教程實在太少太老了!好多坑!第一次嘗試后臺很懵,最坑的地方是安裝的wsgi部分模塊需要更新。B站真是個學習的地方,竟發現了楊老師的部署視頻...
摘要:站真是個學習的地方,竟發現了楊老師的部署視頻,楊老師的站主頁在此主頁有一系列的學習視頻,推薦干貨用于部署的項目主要用了提供后臺,所以靜態文件僅有部分的。接下來是部署和激活階段了。 吐吐槽 此篇blog將詳細記錄部署Django的每一個步驟,網上現有的教程實在太少太老了!好多坑!第一次嘗試后臺很懵,最坑的地方是安裝的wsgi部分模塊需要更新。B站真是個學習的地方,竟發現了楊老師的部署視頻...
閱讀 1302·2021-11-23 09:51
閱讀 3405·2021-09-06 15:00
閱讀 990·2021-08-16 10:57
閱讀 1376·2019-08-30 12:46
閱讀 942·2019-08-29 12:22
閱讀 1610·2019-08-29 11:07
閱讀 3153·2019-08-26 11:23
閱讀 2987·2019-08-23 15:14