Python导入困惑

标签 python import package

我在导入模块时遇到了一个奇怪的问题。我已经设置了 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/

相关文章:

angular - 从 Angular 6 更新开始,从 'firebase' 导入 * 作为 firebase 不再有效

security - 通过命令行 Mac OS X 添加/导入带密码的证书

common-lisp - 通用 Lisp : defpackage and exporting symbols that are created programmaticaly

r - 2.14.0 即将到来的命名空间、依赖、导入更改(请一些定义/使用)

python - 如何使用 cythonize 启用 `--embed`?

python - 如何将 factory.LazyAttribute 与 Faker() 函数一起使用

python - python中如何将一个函数传递给另一个函数

python - 将QMessageBox系统图标添加到QDialog中

Python相对导入导致SyntaxError异常

java - Java 包的层次结构