pythonpath应该有特定于python2和python3的目录吗?

Ofe*_*fer 5 python python-2.x pythonpath

我每天都在使用python 2和python 3.我应该添加特定于python版本的PYTHONPATH路径,如下所示,特定于python 2?

/usr/local/lib/python2.7/dist-packages
Run Code Online (Sandbox Code Playgroud)

如果答案是肯定的,那么python 3会不会使用这些模块?

如果答案是否定的,那么如果不是PYTHONPATH,我应该在哪里添加上述路径?

小智 2

Python 3 将尝试从 PYTHONPATH 加载模块并失败。对此的一个可能的解决方案如下。

将你的 PYTHONPATH 设置为

/usr/local/lib/%PYTHON%/dist-packages
Run Code Online (Sandbox Code Playgroud)

并在返回的目录中创建文件sitecustomize.py

python -c "import site ; print site.getsitepackages()"
Run Code Online (Sandbox Code Playgroud)

包含以下内容:

import sys
from distutils.sysconfig import get_python_version

sys.path = [x.replace('%PYTHON%', 'python{}'.format(get_python_version()))
            for x in sys.path]
Run Code Online (Sandbox Code Playgroud)

这将用执行的任何 python 版本替换目录名称的相关部分。