无法导入同一目录中的其他文件

时间:2017-06-20 11:45:55

标签: python python-3.x

我有一个脚本,当我从pycharm运行它时,它运行正常,但是当从命令行执行时它会抱怨

import util as u

ModuleNotFoundError: No module named 'util'

我在这里遵循了这个建议: Script running in PyCharm but not from the command line

解释器是相同的,工作目录是相同的,但sys路径是不同的。

模块的文件夹如下所示

mymodule
    sub_1
        util.py
    sub_2
         ...
    main.py

pycharm在打印sys.path元素时显示所有文件夹。当从命令行运行时,即使我从main.py所在的thr director运行它,它也不会显示它们中的任何一个。 即使我从该目录运行该文件,是否必须将目录添加到PYTHONPATH?似乎过度杀死了每个项目的目录。有没有更好的方法来做到这一点,还是标准程序?

2 个答案:

答案 0 :(得分:0)

我认为需要更多信息来提出解决方案建议,但这是我要检查的内容:

  1. 您的模块包是否包含__init__.py个文件
  2. 使用命令行时,是否使用-I参数调用python解释器?这将从您的脚本中删除位置上下文,因此扫描本地目录中的模块或包,所以如果您这样做,请尝试在没有它的情况下运行。

答案 1 :(得分:0)

digitake建议使用相对路径

import .util as u