我使用pycharm在python中开发了一段时间。我在pycharm中运行它没有问题,但我想尝试从命令行运行它(我正在使用Windows)。
当我尝试从根目录中使用python <filename>
运行我的主文件时,我得到一个模块未找到错误。什么是pycharm做/我怎么能复制它?
此外,pycharm会创建 pycache 文件夹。如果我的理解是正确的,它编译文件,这使运行时更快。由于我的运行时间很长,我也想做同样的事情。
我正在使用python 3.6
文件结构
-Root\
----scheduler\
------main.py
------matrices
------models
------rhc
------Singleton.py
------utils.py
------__init__.py
------apis\
acedb.py
metrics.py
__init__.py
------matrices\
distancematrix.py
__init__.py
------models\
branch.py
constants.py
customer.py
dispatch.py
technician.py
workorder.py
__init__.py
------rhc\
pathfinder.py
rhc.py
schedule.py
sched_time.py
tech_schedule.py
__init__.py
找到解决方案,我不得不将我的主文件移到模块之外 谢谢!
答案 0 :(得分:1)
例如,如果您具有以下文件夹结构。添加一个名为 init .py的空文件并从app.py导入,如果你有一个Module1Class,你总是可以像这样导入它
from modules.module1 import Module1Class
from modules.module2 import Module2Class
文件夹结构
/app.py
/modules
/module1.py
/module2.py
/__init__.py
你第一次从终端发布app.py如python app.py,会创建.pyc文件,让你有以下文件夹结构
/app.py
/modules
/module1.py
/module1.pyc
/module2.py
/module2.pyc
/__init__.py
请参阅python文档,因为它有关如何创建模块和导入模块的详细文档。我更习惯于python2.7,所以我的答案可能不适合新的python版本。
https://docs.python.org/3/tutorial/modules.html
从那里,您可以了解有关__ init __.py和模块创建,导出和导入
的更多信息PS:我只使用文本编辑器在python中进行开发,因为我发现pycharm有点偏重,所以我无法解释pycharm究竟是如何在幕后工作的。
答案 1 :(得分:0)
请参阅ModuleNotFoundError: What does it mean __main__ is not a package?以获取ModuleNotFoundError描述的一个很好的例子(快速回答)
我敢打赌pycharm配置为使用不同的虚拟环境python解释器。