我有一个例子,需要将python包的路径添加到sys.path
(而不是其父目录),但通常按名称引用包。
也许这很奇怪,但让我举例说明我需要什么,也许你们知道如何实现这一点。在
我在/home/me/python这样的路径中有各种各样的实验文件夹、模块等。
现在我不想把这个文件夹添加到我的sys.path
(PYTHONPATH
),因为有些实验模块的名称可能与一些有用的东西冲突。
但是,在/home/me/python
里面,我想要一个类似pyutils
的文件夹。所以我想将/home/me/python/pyutils
添加到PYTHONPATH
,但是,可以通过它的名称pyutils
来引用这个包……就像我在路径中添加了/home/me/python
。在
你有很多选择:
pyutilsdir
,将pyutils
放入pyutilsdir
, 然后将pyutilsdir
添加到PYTHONPATH。在/home/me/python
之外,并将python
添加到 你的PYTHONPATH
。在python
添加到PYTHONPATH
。在使用像
git
或hg
这样的版本控制系统 实验模块可根据需要提供或不可用。在你可以有一个没有实验模块的
master
分支, 以及包含它们的feature
分支。例如,使用git,您可以在 两个/home/me/python/pyutils
(git repo目录)的内容将 提交取决于签出的更改。因此,使用版本控制,您可以将实验模块保留在pyutils
中,但仅在签出feature
分支时使它们出现。我会回答我自己的问题,因为我在写问题的时候有了一个想法,也许有人会需要它。 我将该文件夹中的链接添加到我的站点包文件夹,如下所示:
ln -s /home/me/python/pyutils /path/to/site-packages/pyutils
然后,由于PYTHONPATH包含
/path/to/site-packages
文件夹,并且我在其中有一个pyutils
文件夹,其中有一个init.py,我可以像这样导入:from pyutils import mymodule
其余的
/home/me/python
不在PYTHONPATH
中一个有用的事实是,向python路径添加内容与将其导入解释器是不同的。您可以对模块和子模块进行结构设置,使名称不会冲突。在
Look here关于如何创建模块。我阅读了这些文档,但我认为模块布局需要一点边做边学的工作,这意味着创建模块,然后将它们导入脚本,看看导入是否笨拙或需要太多的限定条件。在
分别考虑python import system。当你导入一些东西时,你可以使用“导入。。。“特性”可以在导入时为其命名不同的名称,从而防止命名冲突。在
您似乎已经了解了如何使用搜索路径(),如文件所述here。在
相关问题 更多 >
编程相关推荐