当站点包位于/usr/local时,何时/如何从/usr更改python sys.prefix?
如果操作正确,我需要将站点包目录移动到/usr/lib/python2.7,或者将sys.prefix更改为/usr/local 前者似乎是错误的。对于后者,我可以选择直接编辑site.py或重新安装python。编辑site.py是否被认为太黑了,或者这是一件标准的事情?(埃塔:我认为这是一件标准的事情,因为这就是它的目的。我想我真的在问,在这种情况下,这是否是最好的选择。) 还是我忽略了另一个选择 /usr/lib vs/usr/local/lib:当站点包位于/usr/local时,何时/如何从/usr更改python sys.prefix?,python,configuration,path,packages,Python,Configuration,Path,Packages,如果操作正确,我需要将站点包目录移动到/usr/lib/python2.7,或者将sys.prefix更改为/usr/local 前者似乎是错误的。对于后者,我可以选择直接编辑site.py或重新安装python。编辑site.py是否被认为太黑了,或者这是一件标准的事情?(埃塔:我认为这是一件标准的事情,因为这就是它的目的。我想我真的在问,在这种情况下,这是否是最好的选择。) 还是我忽略了另一个选择 /usr/lib vs/usr/local/lib: auto@virgo:/etc/apac
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
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
谢谢 创建
sitecustomize.py
或usercustomize.py
并附加到site.PREFIXES
import site
SITEPKGS = '/usr/local/lib/python2.7/site-packages'
site.addsitedir(SITEPKGS)
site.PREFIXES += ['/usr/local']
假设/usr/local/lib/python2.7/site-packages
是指向/usr/local
站点包的路径
从文档:
在这些路径操作之后,将尝试导入名为sitecustomize
的模块,该模块可以执行任意特定于站点的自定义。它通常由系统管理员在site packages目录中创建。如果此导入失败并出现ImportError
异常,则会自动忽略它。如果启动Python时没有可用的输出流,如Windows上的pythonw.exe
(默认情况下用于启动空闲),则将忽略尝试从sitecustomize
输出的内容。除ImportError之外的任何异常都会导致进程的无声故障,可能是神秘故障
在此之后,尝试导入名为usercustomize
的模块,如果ENABLE\u user\u SITE
为true,则该模块可以执行任意用户特定的自定义。该文件将在用户站点软件包目录(见下文)中创建,该目录是sys.path
的一部分,除非被-s
禁用。导入错误将被静默忽略
注意:用户自定义.py的位置取决于site.USER\u site
的值,它在Linux for Python-2.7上是~/.local/lib/python2.7/站点包
export PYTHONUSERBASE=/usr/local
注意:管理员也会将sitecustomize.py
放在sys.prefix
中的site packages文件夹中
其他选项是设置环境变量:
$ PYTHONPATH=/usr/local/lib/python2.7/site-packages python
- 设置为
,这将用户的基本Python目录的位置从/usr/local
切换到您设置的任何位置注意:这将禁用安装到~/.local
~/.local/lib/python2.7/site软件包中的软件包
export PYTHONUSERBASE=/usr/local
- 设置为prepend
,将其添加到/usr/local/lib/python2.7/site packages
sys.path
export PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH
.bashrc
或.bash\u profile
设置中导出环境变量,将其添加到/etc/Environment
以使其成为系统范围内的变量,也可以在Python解释器调用之前简单地使用所需的环境变量:
$ PYTHONPATH=/usr/local/lib/python2.7/site-packages python
为什么导入操作系统?