美文网首页Java游戏服务器开发
python在IDE中可以运行成功,在命令窗口运行报错

python在IDE中可以运行成功,在命令窗口运行报错

作者: 王广帅 | 来源:发表于2020-03-01 11:42 被阅读0次

    在第一次做python开发的时候,在eclipse中运行没有任何问题,但是把python代码拿到外面,使用命令窗口执行的时候,就报错:

    PS D:\eclipse-project\python\src\config> py .\ServerDeploy.py
    Traceback (most recent call last):
      File ".\ServerDeploy.py", line 5, in <module>
        from config.DeployArgument import DeployArgument
    ModuleNotFoundError: No module named 'config'
    

    说是找不到module: ModuleNotFoundError: No module named 'config'

    但是这个脚本在eclipse中运行是正确的,这说明在命令窗口运行的时候,模块的路径发生了变化。通过使用命令打印运行路径发现:

    rootPath = os.path.abspath(os.path.dirname(__file__))
    print(rootPath)
    

    打印的路径是:D:\eclipse-project\python\src\config,就是main运行文件所在的目录
    也就是说,python在运行的时候查找模块的引用时,是从运行的文件所在的目录开始的,我的目录是:

    ├─config
    │      DeployArgument.py
    │      ServerDeploy.py
    │      __init__.py
    │
    └─__pycache__
            DeployArgument.cpython-36.pyc
    

    在引用的时候,是这样的:from config.DeployArgument import DeployArgument
    所以在命令窗口运行的时候,它是从config目录下开始查找模块的,因此找不到模块的引用。
    正确的做法是,应该把主运行文件放在根目录中,如下所示:

    │  ServerDeploy.py
    │
    ├─config
    │      DeployArgument.py
    │      __init__.py
    │
    └─__pycache__
    

    这样在运行的时候就不会报错了,模块也能正确找到了。

    求关注

    相关文章

      网友评论

        本文标题:python在IDE中可以运行成功,在命令窗口运行报错

        本文链接:https://www.haomeiwen.com/subject/qyaxkhtx.html