我在导入模块时遇到了一个奇怪的问题。我已经设置了 virtualenv,并且 {env}/lib/python2.6/site-packages/pkgname
中提供了一个模块。里面有一个__init__.py
文件和pkgname.py
。
现在,如果我运行 {env}/bin/python
并执行 import pkgname.pkgname
,它就可以正常工作。但是,如果我在 {env}/bin/pkgname.py
中创建一个脚本,其内容为:
#!{env}/bin/python
import pkgname.pkgname
if __name__ == "__main__":
pkgname.pkgname.run()
尝试再次导入同一文件失败(因为包和文件具有相同的名称)。如何禁用在同一目录中查找?或者如何强制导入首先查看全局包?
或者,“正确”的做法是什么?为了保持一致性,我宁愿将我的启动脚本命名为它尝试运行的实际包。
最佳答案
将其命名为 pkgname。完毕。好的,那么如果您在 WIndows 中双击它,它就不会启动,但这通常不是问题。
关于Python导入困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4701714/