Python 3.4.0无法通过在解释器中成功导入的脚本导入模块

时间:2014-05-02 09:45:33

标签: importerror python-3.4

我不是Python的新手,但我遇到了一个奇怪的问题。

我设置了这个python项目结构(摘录):

  • 项目-A / MyApp的
  • 项目-B /核心/普通/ lib中

其中 myapp / core,common& lib 是python包。

project-B目录在python路径中设置为'/ root_path / to / core_module'

当我运行将模块导入project-A / myapp目录的脚本时:

from core.common.lib import Error, XmlSource, Property, Preference

它引发了一个错误:

ImportError:没有名为'core'的模块

不改变python3解释器中的当前目录并输入相同的命令:

jeby6372@mercure:~/factory/bubble$ python3
Python 3.4.0 (default, Apr  9 2014, 20:03:10) 
[GCC 4.7.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from core.common.lib import Error, XmlSource, Property, Preference
>>> 

模块已加载...我期望在脚本执行期间出现与上述相同的行为。

所以我尝试在导入语句失败之前添加此命令

os.environ['PYTHONPATH'] = '/root_path/to/core_module'

没有成功......

有什么想法吗?

也许我错了,但我假设python3解释器搜索当前目录中首先给出的相对导入模块路径,然后搜索定义的python路径,无论它在哪里被调用。

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

在解释器中设置PYTHONPATH无法提供帮助,因为它可以帮助您解决问题。 s阅读翻译启动。 解决方案是在导入之前将核心模块的路径直接附加到sys.path,即

import sys
sys.path.append('/path/to/core/module')
import core.module

我猜你忘了导出pythonpath,试试(在shell中):

export PYTHONPATH='/path/to/core/module'
python your_python_script.py