2016-01-06 147 views
3

讓我們假設我在.bashrc設置如下PYTHONPATH:如何爲版本2和版本3設置不同的PYTHONPATH?

export PYTHONPATH=$PYTHONPATH:/ver2packages 

當我檢查在Python 3我的Python路徑:

$ python3 
>>> import sys 
>>> print(sys.path) 
['', '/home/user', '/ver2packages', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages'] 

ver2packages,如果存在具有相同名稱的包版本3的軟件包可能存在衝突和錯誤。

有沒有辦法爲每個版本的Python設置pythonpath?

+1

最好的解決方案可能是使用['virtenvs'鏈接](http://docs.python-guide.org/en/latest/dev/virtualenvs/) – RedX

+0

在'/ usr中創建'filename.pth'/lib/python27/dist-packages /'並添加一行,即'ver2packages'的路徑。 – Zety

回答

3

對於Linux的,您可以創建一個符號鏈接到您庫文件夾,並把它放在你的目標版本:

ln -s /your/path /usr/local/lib/python3.6/site-packages 

這不是要改變PYTHONPATH但替代解決方案。

0

您的選擇取決於操作系統。

Ubuntu的,如果你正在使用標準的Python包...

如果您希望這樣做全系統的(你有管理權限),你可以到sys.path通過/usr/lib/pythonN.M/site.py添加其他路徑。

爲你自​​己而已,系統默認site.py文件已經把$HOME/.local/lib/pythonN.M/site-packages到您的sys.path當且僅當它存在),所以你可以創建目錄,並把特定版本的軟件包存在。

2

您可以使用路徑配置(.pth)文件爲Python 2和Python 3設置不同的sys.path

例如,將目錄添加到sys.path爲Python 2,創建一個.pth文件中的任何Python 2裏的site-packages目錄(即由site.getsitepackages()site.getusersitepackages()返回)的:

Python 2.7.11 (default, Dec 6 2015, 15:43:46) 
[GCC 5.2.0] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import site 
>>> site.getsitepackages() 
['/usr/lib/python2.7/site-packages', '/usr/lib/site-python'] 

然後創建一個.pth文件(以root身份):

echo "/ver2packages" > /usr/lib/python2.7/site-packages/ver2packages.pth 

有關更多信息,請參閱site模塊文檔。

相關問題