【问题标题】:Pydev+Kivy - Empty __init__ filesPydev+Kivy - 清空 __init__ 文件
【发布时间】:2013-03-08 17:51:16
【问题描述】:

我正在使用 Eclipse 和 PyDev 为名为 Kivy 的 Python 库进行开发。

我完成了正确的设置说明,从 Eclipse 开发和运行完美无缺。

但是,当我,或者更多 namley,我的项目伙伴,尝试运行包含 Eclipse OUTSIDE 的 main 方法的文件时(通过 kivy cmd 提示符),它会出现以下错误:

   File "C:\MyProject\code\main.py", line 8, in <module>
     from code import engine
 ImportError: cannot import name engine

文件代码基本是:

from kivy.app import App
from kivy.clock import Clock
from kivy.uix.screenmanager import ScreenManager
from code import engine

class MyApp(App):
    def build(self):
        pass

if __name__ == '__main__':
    MyApp.run()

我查看了我的项目文件。我有一堆 init.py 文件

code/
    __init__.py
    main.py
    engine.py
    system1/
        __init__.py
        my_system.py
etc...

但是所有 init.py 文件都是空的! 我应该手动构建它们吗? Eclipse 一定会在某个时候做,我可以让 PyDev 自动做吗?

【问题讨论】:

  • PyDev 应该如何知道要导入哪些名称,哪些不应该导入?
  • 基于文件结构,对吧?我有哪些包和模块

标签: python initialization pydev kivy


【解决方案1】:

Python 需要空的__init__.py 文件(最高版本 3.2)将目录识别为 Python 包 - 并将其内容识别为模块/子包。

如果您没有创建它们,PyDev 会为您创建它们 - 它们不需要包含任何内容。

如果您的伙伴无法导入code.engine asstated,则很可能包含code 的目录本身不是Python 路径的一部分(PYTHONPATH 环境变量)-因此它无法找到从哪里下降到代码中包。

【讨论】:

  • 或者直接从code/下面的一个目录运行main.py:python code/main.py,这取决于engine.py如何使用system1
  • 啊,更有意义。 @Scharron 效果很好。接下来还有一些错误,但我是从主目录运行的,而不是 ../main,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-03
  • 2015-03-19
  • 1970-01-01
  • 1970-01-01
  • 2013-04-29
  • 2015-09-02
  • 2022-07-12
相关资源
最近更新 更多