3
我花了我一直的時間找到這個解決方案,所以我希望其他人能夠看到它。從python中調用python腳本
我想編寫一個python腳本來創建一個虛擬env並在其中安裝模塊。不幸的是,PIP不玩子不錯,詳見這裏: https://github.com/pypa/pip/issues/610
我的答案已經上線,但我想詳細它下面
我花了我一直的時間找到這個解決方案,所以我希望其他人能夠看到它。從python中調用python腳本
我想編寫一個python腳本來創建一個虛擬env並在其中安裝模塊。不幸的是,PIP不玩子不錯,詳見這裏: https://github.com/pypa/pip/issues/610
我的答案已經上線,但我想詳細它下面
基本上,問題是點子仍在使用原始python調用的python可執行文件。要解決這個問題,你需要從傳入的環境變量中刪除它。這裏是解決方案:
#!/usr/bin/python3
import os
import subprocess
python_env_var = {"_", "__PYVENV_LAUNCHER__"}
CMD_ENVIRONMENT = {name: value for (name, value) in os.environ.items()
if name not in python_env_var}
subprocess.call('./pip install -r requirements.txt', shell=True,
env=CMD_ENVIRONMENT)
測試在Mac,Ubuntu的14.04和Windows使用Python 3
同樣的問題可以很容易地存在很多情況 - 我會從現在開始將刪除此變量,以在處理virtualenv的時候防止這種行爲