“ ImportError:导入我自己的模块时,模块未命名……”

问题描述 投票:6回答:5

我正在尝试导入模块,但不断收到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

提前感谢!

python python-2.7 python-import pythonanywhere
5个回答
10
投票

您应该尝试以下方法:

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

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


6
投票

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

最后这就是我所做的:

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

2
投票

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

__init__.py文件的此类包含向Python解释器指示该目录应被视为Python包。


0
投票

这很可能是因为您的Shares目录不在您的PYTHONPATH中。

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

摘录:

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

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

重击:

导出PYTHONPATH = $ {PYTHONPATH}:/用户/ [您的用户名] / PBI /模块/


-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()
© www.soinside.com 2019 - 2024. All rights reserved.