2

我有一个干净的虚拟机,带有 XP SP3 32 位和 ActivePython 2.7.2 32 位社区版,当前目录是“C:\test”。我已经放置sitecustomize.py了“print('dir1')”代码独立“C:\test\dir1”和sitecustomize.py“print('dir2')”代码独立“C:\test\dir2”。

如果我设置PYTHONPATHdir1or dir2sitecustomize.py则执行相应的:

C:\test> set PYTHONPATH=C:\test\dir1\
C:\text> python
dir1
>>>exit()
C:\test> set PYTHONPATH=C:\test\dir2\
C:\text> python
dir2

但是,如果我将两个目录都添加到 pythonpath,则只sitecustomize.py执行第一个目录:

C:\test> set PYTHONPATH=C:\test\dir1\;C:\test\dir2\
C:\text> python
dir1
>>>exit()
C:\test> set PYTHONPATH=C:\test\dir2\;C:\test\dir1\
C:\text> python
dir2

那么是否可以有多个目录PYTHONPATH和多个目录,sitecustomize.py或者我仅限于一个?文档指出我可以有很多目录PYTHONPATH,但它没有说任何关于sitecustomize.py

4

2 回答 2

3

是的,您可以在PYTHONPATH.

sitecustomize是一个在解释器启动时自动导入的模块。sitecustomize.py因此,如果您的 上有多个PYTHONPATH,则只会加载第一个。

该过程在文档中进行了描述:

在这些路径操作之后,尝试导入一个名为 的模块sitecustomize,该模块可以执行任意特定于站点的自定义。它通常由系统管理员在 site-packages 目录中创建。如果此导入因ImportError异常而失败,则会被静默忽略。

于 2013-01-19T14:31:34.990 回答
1

我有时会做 sys.path.append() 来添加路径

于 2013-01-19T16:03:51.607 回答