【发布时间】:2018-02-12 12:26:57
【问题描述】:
我有一个具有以下结构的 python 3 包:
.
├── package
│ └── bin
└── main_module
│ └── lib
│ ├── __init__.py
│ ├── module1.py
│ ├── module2.py
│ └── module3.py
│ └── test
│ ├── test1.py
│ ├── test2.py
│ └── test3.py
│ └── setup.py
通常,一个运行$ python3 setup.py install,一切都很好。但是,我想在没有/usr/lib/ 写入权限的集群服务器上使用这个包。我想到了以下解决方案。
以某种方式在我的用户文件夹中本地安装包。
修改包,使其无需安装即可运行。
请 IT 人员为我安装软件包。
我想避免 3.,所以我的问题是 1. 是否可能,如果没有,我必须如何修改代码(特别是导入)以便能够在不安装的情况下使用包。我整个早上都在阅读有关 python 中的相对导入的信息,现在我比以前更加困惑。我在 package 和 bin 中添加了__init__.py,从我读到的内容中,我认为它必须是from package.lib import module1,但我总是得到ImportError: No module named lib。
【问题讨论】:
-
你必须将你的包的路径添加到sys.path,这样Python才能找到你的模块。
标签: python python-3.x