【问题标题】:importing python modules that have a . in the name of the directory [duplicate]导入具有 .以目录的名义[重复]
【发布时间】:2018-07-07 13:47:27
【问题描述】:

我有一个名为 my.directory 的目录和一个名为 file.py 的文件,我需要编写一个使用 file.py 的 python 脚本,我不能更改文件或目录的名称,而且脚本不能在与 file.py 相同的目录中。我试过这个:

import my.directory.file

还有这个

import my\.directory.file

这两种方法都行不通,我想知道这是否可行,如果可行,如何实现。

谢谢

编辑:

我以一般的方式表达了上述问题,因为我认为问题的特定细节并不重要,但无论如何这里都是细节。我正在尝试从 python3.6/site-packages 导入

【问题讨论】:

  • 为什么不能更改文件或目录的名称?你真的需要它作为一个模块,还是作为一个脚本?
  • 我需要导入一个我下载的模块,我无法更改目录的名称,因为还有其他脚本依赖于它,我不想全部更改跨度>
  • 如果您不能将模块移动到 python 知道的位置,而是让 python 知道模块的位置。最简单的方法可能是更新您的 PYTHONPATH 环境变量。阅读更多关于如何导入模块here
  • python3.6/site-packages?这是一个venv吗?

标签: python


【解决方案1】:

Python 下的模块或包名中不能有点。

但是您可以通过以下方式在您的命名空间下动态执行任意 python 代码::

>>> exec(open("my.directory.file").read())

【讨论】:

  • 运行init文件的效果和导入一样吗?
  • 仅当 init 初始化包的其余部分时,即它导入同级模块,否则不。
猜你喜欢
  • 2019-11-07
  • 2013-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-07
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
相关资源
最近更新 更多