首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在windows终端中从另一个模块运行脚本时,Python返回ImportError。

在windows终端中从另一个模块运行脚本时,Python返回ImportError。
EN

Stack Overflow用户
提问于 2015-09-17 09:41:51
回答 1查看 51关注 0票数 0

我有一个项目在以下(简化)结构。

代码语言:javascript
复制
MyProject
|__Module1
    __init__.py
    -script11
|__Module2
    __init__.py
    -script22
__init__.py

剧本11的内容:

代码语言:javascript
复制
var11 = "hello"

经文22的内容:

代码语言:javascript
复制
from MyProject.Module1.script11 import var11
print var11

当我从内部运行script22时,PyCharm运行得很好。当我从Windows/PyCharm终端运行它时,它会打印一个ImportError

代码语言:javascript
复制
Traceback (most recent call last):
  File "F:\Project\Python27\Projects\folder1\MyProject\Module2\script22.py", line 3, in <module>
    from MyProject.module1.script11 import hello
ImportError: No module named MyProject.module1.script11

如果我在与script22.py相同的模块/文件夹中创建script11.py文件,脚本将运行OK。

我在我的ENV.VARIABLES中有以下条目:

代码语言:javascript
复制
F:\Schoox\Python27\python.exe;
F:\Schoox\Python27;
F:\Schoox\Python27\Lib;
F:\Schoox\Python27\Scripts;
F:\Schoox\Python27\lib\site-packages;
F:\Schoox\Python27\Projects\folder1\; (I have tried also with ...folder1\MyProject)

出什么问题了??我基本上不能自由地使用我的项目的所有模块。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-18 07:27:18

可能是因为您的模块不在pythonpath中,因此脚本无法找到所需的模块,因此PyCharms将当前项目添加到PythonPATH中,因此当从PyCharms运行时,模块将得到解决,您不会发现任何问题。

要克服这些问题,可以执行以下操作之一。

  1. 在路径环境变量How to add to the pythonpath in windows 7?中添加“F:\Schoox\Python27 27\Projects\folder1 1”
  2. 将项目移到"c:\python<>\lib\site-packages“(不推荐)
  3. 在导入模块之前,将路径“F:\Schoox\Python27 27\Projects\folder1 1”动态追加到sys.path

所以你的脚本22.py变成了

代码语言:javascript
复制
import sys
sys.path.append(F:\Schoox\Python27\Projects\folder1\) 
from MyProject.Module1.script11 import var11
print var11

检查https://docs.python.org/3/reference/import.html#searching如何处理导入和查找顺序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32627165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档