为了概括我对你的目标的理解,你希望能够使用import custom_package_name
导入自定义包,不管你从哪里调用python,也不管你的python脚本位于何处。
许多答案都提到了我要描述的内容,但我觉得大多数答案都假设了很多以前的知识。我会尽力做到尽可能明确。
为了实现允许通过import
语句导入自定义包的目标,它们必须在python用来搜索包的路径的某处可以发现它们。 Python实际上使用多条路径,但我们只关注可以通过将sys.prefix
(在Python解释器中)的输出与/lib/pythonX.Y/site-packages
(或如果您使用的是Windows,则为lib/site-packages
)的输出组合在一起找到的那个路径,其中X.Y是您的Python版本。
具体而言,通过运行发现,你的Python使用路径:
import sys
your_path = sys.prefix + '/lib/pythonX.Y/site-packages'
print(your_path)
此路径应,如果你使用Python 3.5看起来像/usr/local/lib/python3.5/site-packages
,但它可以根据您的设置是非常不同的。
Python使用此路径(和其他几个)来查找要导入的包。所以你可以做的是把你的自定义包放在/usr/local/lib/python3.5/site-packages
文件夹中。不要忘记将init .py文件添加到该文件夹。
要具体再次,在终端中输入:
cd your_path
cp path_to_custom_package/custom_package ./
现在你应该可以导入所有自定义程序包,就像您如果包是位于同一目录(即import package.subpackage
每个子包文件在你的软件包应该工作)。
而结果是什么?你打算接受答案吗? – 2009-07-03 09:47:09
一旦我尝试了代码,我会接受一个答案,我几个星期不会这样做。我没有看到任何特别的匆忙。 – DavidM 2009-07-03 10:40:38
试过了什么代码?正如我试图用一个例子来指出的那样,正如其他一两个人所说的那样,你所说的你应该做的只是工作而已,并且记录下来只是工作。不要“尝试代码”,请告诉我们(正如我所建议的那样)应该包含在您的问题中的基本信息(平台,Python版本,完整追溯和错误信息)以及我建议的初级调试。几分钟的时间;六人“冲”给你一个答案。 – 2009-07-06 02:01:57