Sco*_*ott 5 python configuration packages path
如果我正确关注https://docs.python.org/2/library/site.html,我需要将 site-packages 目录移动到 /usr/lib/python2.7 或将 sys.prefix 更改为 /用户/本地。
前者好像不对。对于后者,我可以找到的选项是直接编辑 site.py 或重新安装 python。编辑 site.py 是否被认为太老套了,还是标准的做法?(ETA:我认为这是一件标准的事情,因为这就是它的用途。我想我真的在问这是否是这种情况下的最佳选择。)
还是我忽略了另一种选择?
/usr/lib 与 /usr/local/lib:
auto@virgo:/etc/apache2$ ls -ld /usr/lib/python2.7/site-packages
ls: cannot access /usr/lib/python2.7/site-packages: No such file or directory
auto@virgo:/etc/apache2$ ls -ld /usr/local/lib/python2.7/site-packages
drwxrwsr-x 2 root staff 4096 Aug 29 2013 /usr/local/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)
python sys.prefix:
auto@virgo:~$ python
Python 2.7.3 (default, Apr 10 2013, 05:46:21)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.prefix
/usr
Run Code Online (Sandbox Code Playgroud)
谢谢!
创建sitecustomize.pyorusercustomize.py并附加到site.PREFIXES
import site
SITEPKGS = '/usr/local/lib/python2.7/site-packages'
site.addsitedir(SITEPKGS)
site.PREFIXES += ['/usr/local']
Run Code Online (Sandbox Code Playgroud)
假设/usr/local/lib/python2.7/site-packages是您的/usr/local站点包的路径。
从站点文档:
在这些路径操作之后,尝试导入名为 的模块
sitecustomize,该模块可以执行任意站点特定的自定义。它通常由系统管理员在 site-packages 目录中创建。如果此导入失败并出现ImportError异常,则它会被静默忽略。如果 Python 在没有可用的输出流pythonw.exe的情况下启动,就像在 Windows 上一样(默认情况下用于启动 IDLE),则尝试的输出将sitecustomize被忽略。除了ImportError导致进程无声且可能是神秘的失败之外的任何异常。在此之后,尝试导入名为 的模块
usercustomize,如果ENABLE_USER_SITE为真,它可以执行任意用户特定的自定义。此文件旨在在用户 site-packages 目录(见下文)中创建,sys.path除非被-s. AnImportError将被默默忽略。
注意:usercustomize.py应该去哪里取决于 的值site.USER_SITE,在 Linux for Python-2.7 上是~/.local/lib/python2.7/site-packages.
注意:也sitecustomize.py将由管理员放置在sys.prefix.
其他选项是设置环境变量:
set PYTHONUSERBASEto/usr/local会将用户的基本 Python 目录的位置从~/.local您设置的位置切换到任何位置。注意:这将禁用您安装到~/.local/lib/python2.7/site-packages.
export PYTHONUSERBASE=/usr/local
Run Code Online (Sandbox Code Playgroud)
集PYTHONPATH到前面加上 /usr/local/lib/python2.7/site-packages这将它添加到sys.path。
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
Run Code Online (Sandbox Code Playgroud)
环境变量可以在您的.bashrc或.bash_profile设置中导出,添加到/etc/environment系统范围内,或者您可以简单地在 Python 解释器调用之前使用所需的环境变量:
$ PYTHONPATH=/usr/local/lib/python2.7/site-packages python
Run Code Online (Sandbox Code Playgroud)