Java游戏服务器开发

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

2020-03-01  本文已影响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__

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

求关注
上一篇下一篇

猜你喜欢

热点阅读