virtualenv是python解決依賴沖突的好工具,但是如果python腳本的首行如
在shell中直接運作該python腳本的話,不管是不是執行了
. venv/bin/activate
或
source venv/bin/activate
, virtualenv運作環境并不能被加載.
解決方法可以先檢視virtualenv文檔說明
解決方法簡單說明如下:
- 執行
的實際是修改. venv/bin/activate
等環境變量,将PATH
作為執行檔案首搜尋路徑,當使用者輸入venv/bin
指令時,python
的真實路徑變為python
.是以python腳本的首行Shebang應寫為:evn/bin/python
- 目前腳本可以正常執行了,但是環境變量
并未正确設定.如果執行subprocess建立子程序時,可能會使用不一緻的python解釋器來執行子程序腳本,是以還要設定下目前腳本的環境變量, 比如:PATH
... import os import sys os.environ['PATH']="%s/bin:%s" % (sys.exec_prefix, os.environ['PATH'])