我正在尝试通过将脚本从包目录移动到顶级脚本目录来重新组织我的 Python 项目。在这些更改之后,这就是我的项目层次结构:
MyProject/
setup.py
scripts/
my_package.py
my_package/
__init__.py
module_foo.py
注意脚本和包如何具有相同的名称。
脚本 my_package.py
看起来像这样:
# MyProject/scripts/my_package.py
import os
try:
import my_package
print os.path.abspath(my_package.__file__)
except ImportError as e:
print e
当我们运行上面的脚本时,解释器导入当前模块而不是同名的包(注意:包my_package
已经作为鸡蛋安装到 site-packages
中,我们的虚拟环境已正确激活。)
如何从 脚本 my_package.py
中导入 package my_package
,因为它们具有相同的名称?
其他技术信息:
- python 2.7.3
- Ubuntu 服务器 12.04 LTS
- 虚拟环境 1.11.6
最佳答案
对我来说它适用于
sys.path.insert(0, '..')
因为导入做了类似 for path in sys.path:
的事情。
关于python - 从同名脚本导入 Python 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24477478/