无法找到要导入的文件

时间:2017-07-05 17:48:51

标签: python windows

我有一个文件系统如下:

/
- website/
-   - server.py
- common.py

/时,我尝试运行:python website/server.py,但在尝试from common import my_func时说明错误:

ImportError: No module named common

有没有办法将文件表示为模块?我遇到的问题是,在PyCharm中工作时,它正确理解python文件并按设计运行,但是当它在VM中的命令提示符下运行它时它不明白。我正在运行python,正如你所看到的那样,认为它会使用它作为范围,但它似乎不起作用。

我没有从调试器或日志中获得任何更多信息。我做错了什么?

编辑我按照Joao的要求尝试了以下操作。 python ./website/server.py并仍然返回以下行,这与上面收到的错误相同。

Traceback (most recent call last):
  File "./website/server.py", line 3, in <module>
    from common import my_func
Import Error: No module named common

3 个答案:

答案 0 :(得分:1)

您正尝试从父文件夹导入。

from common import my_func执行操作之前添加以下代码。

import sys 

#appending parent directory into the path
sys.path.append('..')

答案 1 :(得分:0)

在PyCharm中,PYTHONPATH会自动设置。假设您从包含common.py的目录运行server.py,您可以将PYTHONPATH定义为该目录的运行。

$ python website/server.py
Traceback (most recent call last):
  File "website/server.py", line 1, in <module>
    from common import my_func
ImportError: No module named common

$ PYTHONPATH=`pwd` python website/server.py
$

这里的关键是确保您需要的软件包位于Python运行代码时将搜索的路径中。

答案 2 :(得分:-1)

尝试

python ./website/server.py