将python包的路径添加到搜索路径

2024-05-29 06:42:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个例子,需要将python包的路径添加到sys.path(而不是其父目录),但通常按名称引用包。 也许这很奇怪,但让我举例说明我需要什么,也许你们知道如何实现这一点。在

我在/home/me/python这样的路径中有各种各样的实验文件夹、模块等。 现在我不想把这个文件夹添加到我的sys.pathPYTHONPATH),因为有些实验模块的名称可能与一些有用的东西冲突。 但是,在/home/me/python里面,我想要一个类似pyutils的文件夹。所以我想将/home/me/python/pyutils添加到PYTHONPATH,但是,可以通过它的名称pyutils来引用这个包……就像我在路径中添加了/home/me/python。在


Tags: 模块path路径目录文件夹名称homesys
3条回答

你有很多选择:

  • 创建一个新目录pyutilsdir,将pyutils放入pyutilsdir, 然后将pyutilsdir添加到PYTHONPATH。在
  • 将实验代码移到/home/me/python之外,并将python添加到 你的PYTHONPATH。在
  • 重命名实验模块,这样它们的名称就不会与 其他模块。然后将python添加到PYTHONPATH。在
  • 使用像githg这样的版本控制系统 实验模块可根据需要提供或不可用。在

    你可以有一个没有实验模块的master分支, 以及包含它们的feature分支。例如,使用git,您可以在 两个

    git checkout [master|feature]
    

    /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。在

相关问题 更多 >

    热门问题