[英]How to set PYTHONPATH differently for version 2 and 3?
我們假設我在.bashrc
設置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?
您可以使用路徑配置( .pth
)文件為Python 2和Python 3設置不同的sys.path
。
例如,要為Python 2的sys.path
添加目錄,請在任何Python 2站點包目錄中創建一個.pth
文件(即由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
模塊
對於Linux ,您可以創建指向庫文件夾的符號鏈接並將其放在目標版本中:
ln -s /your/path /usr/local/lib/python3.6/site-packages
這不是關於改變PYTHONPATH
而是替代解決方案。
您的選項取決於操作系統。
對於ubuntu,如果你使用標准的python包......
如果您希望在系統范圍內執行此操作(並且您具有管理權限),則可以通過/usr/lib/pythonN.M/site.py
向sys.path
添加其他路徑。
僅限於您自己,系統默認的site.py
文件已將$HOME/.local/lib/pythonN.M/site-packages
放入您的sys.path
( 如果它存在),因此您只需創建目錄並放置特定於版本的包那里。
或者在~/.bashrc
或~/.bash_aliases
設置別名,例如(假設python2
是你現有的python 2命令):
alias py2='PYTHONPATH=/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages python2'
,這條路可以從import site; site.getsitepackages()
獲得import site; site.getsitepackages()
import site; site.getsitepackages()
在將來,只需發出命令py2
而不是python2來執行版本2包的任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.