" ImportError:没有命名的模块......"导入我自己的模块时

时间:2016-02-22 14:12:41

标签: python python-2.7 python-import pythonanywhere

我正在尝试导入模块,并且我一直收到ImportError。

在PortfolioStatus.py文件中,我有以下代码从share_data.py模块导入share_data类
from Shares.share_data import share_data

我收到以下错误:

File "/home/lucasamos/FYP/Shares/Communication/PortfolioStatus.py", line 3, in <module>
from Shares.share_data import share_data
ImportError: No module named Shares.share_data

为了让事情更加混乱,这在我的本地机器上工作正常,但我在PythonAnywhere上托管,这是我收到错误的地方

我的文件层次结构显示在下面的图片中

File hierarchy

提前致谢!

5 个答案:

答案 0 :(得分:9)

你应该试试这个:

import sys
sys.path.append("../Shares/templates")
import share_data

它将您的templates文件夹添加到路径列表中,python正在检查模块。

答案 1 :(得分:6)

好的,所以我终于解决了。 正如一些答案所示,我需要将我的根文件夹添加到系统路径。

最后这就是我所做的:

import sys
sys.path.append("/home/lucasamos/FYP")

答案 2 :(得分:2)

使用__init__.py文件在一个级别添加空manage.py

包含__init__.py文件表明Python解释器应该将该目录视为Python包。

答案 3 :(得分:0)

这可能是因为您的共享目录不在您的PYTHONPATH中。

请参阅有关使用PYTHONPATH的文章: https://users-cs.au.dk/chili/PBI/pythonpath.html

摘录:

  

但是,通常需要导入一个与主程序不在同一目录中的模块。继续上面的例子,假设您正在编写位于〜/ PBI /中的程序,该程序需要包含mymodule.py。

     

为了让Python解释器找到你的模块,你需要告诉它在哪里看。您可以通过设置环境变量PYTHONPATH来实现。根据您使用的shell程序(例如,xterm),这可以通过两种方式之一完成。

     

击:

     

export PYTHONPATH = $ {PYTHONPATH}:/ users / [您的用户名] / PBI / Modules /

答案 4 :(得分:-1)

一个模块是带有python代码的文件。因此,如果您的目录结构如下所示

/dir
  |- a.py
  |- b.py
  |- __init__.py

,如果要将b.py代码导入a.py。然后使用以下导入。

file b.py
-------------------

def sayHi():
    print ('hi)


file a.py
------------------------
from dir.b import sayHi

def wish():
   sayHi()