从命令行运行PyCharm项目

时间:2015-10-20 12:00:53

标签: python python-2.7 pycharm

我正在尝试将我的项目部署到服务器并在那里运行它。 当我尝试从命令行启动脚本时,它显示错误 导入parrent目录中的脚本时。

我使用PyCharm创建了项目(python 2.7.10),它被分散到多个目录中。 这个文件夹像这样嘲笑fimetnihg:

项目/目录/子目录/ main_dir / script1.py

from dir.subdir.other_dir.script2 import *  //gives error here

项目/目录/子目录/ other_dir / script2.py

def my_function():
    //do something

我通过转到main_dir并运行:python script1.py

来运行脚本

3 个答案:

答案 0 :(得分:2)

如果从main_dir运行脚本,则表示在运行Python命令时,相对引用为main_dir。因此,您的导入是以main_dir为根。

这意味着如果我们以您的脚本1为例,您的导入应如下所示:

from other_dir.script2 import *

有可能你的PyCharm项目root实际设置为从

运行
project/

这就是为什么你的引用在PyCharm中工作的原因。

我建议您做的是,如果您的服务器应该在main_dir内运行,那么您应该重新配置PyCharm,以便其执行根目录相同,以消除这种混淆。

答案 1 :(得分:1)

在我的情况下,这个问题的另一种解决方案是在python项目的根目录中添加一个 main .py脚本来触发该程序。

项目/ __主__ PY:

from dir.subdir.other_dir.script2 import *  //doesn't give errors

这意味着当从终端调用程序时,工作区将是正确的,并且每次包含脚本都会正确映射文件夹(从根目录)。

项目/目录/子目录/ main_dir / script1.py:

from dir.subdir.other_dir.script2 import *  //also doesn't give errors

答案 2 :(得分:0)

另一种解决方案,您可以在导入时跳过父目录:

from script2 import *

在运行脚本之前设置PYTHONPATH变量时有效,例如在Windows中是这样的:

set PYTHONPATH=../other_dir && python script1.py