我有一个以下(简化)结构的项目。
switch(task)
{
case 1: case 0;//I don't know what "all" is, so I'm using 0 here
print();
if (task == 0) goto case 2;
break;
case 2:
save();
if (task == 0) goto case 3;
break;
case 3:
sendmail();
break;
}
script11的内容:
MyProject
|__Module1
__init__.py
-script11
|__Module2
__init__.py
-script22
__init__.py
script22的内容:
var11 = "hello"
当我从PyCharm内部运行script22时,它运行正常。 当我从Windows / PyCharm终端运行它时会打印一个ImportError
from MyProject.Module1.script11 import var11
print var11
如果我在与script22.py相同的模块/文件夹中创建script11.py文件,则脚本运行正常。
我在ENV.VARIABLES中有这些条目:
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
出了什么问题??? 我基本上无法自由使用我项目的所有模块。
答案 0 :(得分:0)
可能是因为,你的模块不在pythonpath中,因此脚本无法找到所需的模块,PyCharms将当前项目添加到PythonPATH,因此当从PyCharms运行时,模块被解析,你看不出任何问题。 / p>
要解决这些问题,您可以执行以下操作之一。
所以你的script22.py变成了
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以了解python如何处理导入以及查找顺序。