为了概括你的目标,你想要能够在任何地方调用Python并且无论你的Python脚本位于哪里,都可以使用
import custom_package_name
导入自定义包。
许多答案提到了我将要描述的内容,但我觉得大部分答案假设了很多先前的知识。我会尽可能明确地说明。
为了实现允许通过
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
应该起作用)。