python - 项目模块导入 - Python2.7 [初学者]
问题描述
这是我在 Python 中的第一个项目,由于某种原因,我无法导入我从项目的根目录制作的模块。
项目结构如下
项目
- 用户界面
- 初始化.py
- 主窗口.py
- 主文件
- 用户界面
在 main.py 我试图从 MainWindow.py 导入一个类:
# Python
import sys
# ui
import wx
# Own files
import ui.MainWindow
def main():
app = wx.App()
MainWindow(None, title="Internet HW")
app.MainLoop()
main()
但我收到一个错误:
ImportError:没有名为 ui.MainWindow 的模块
主窗口.py:
# UI
import wx
class MainWindow(wx.Frame):
def __init__(self, parent, title):
super(MainWindow, self).__init__(parent, title=title, size=(600, 600))
def InitUI(self):
self.Centre()
self.Show()
我知道这是一个新手问题,但从我所读到的内容中我无法应对。任何帮助将不胜感激!
解决方案
您的代码没有理由不能按所示工作。
您可以从命令行运行python -c "import ui; print dir(ui);"
,它将向您显示ui模块中可用的所有对象。
- 如果该命令出错,则您的子文件夹可能存在权限问题。预编译的.pyc文件之一也可能存在问题- 尝试删除您的 Project 和 ui 文件夹中的所有文件。
- 如果它只显示内置函数,如ui模块中的文件
['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
可能存在问题。__init__.py
- 如果它显示您不认识的对象,则可能安装了其他正在导入的ui模块。尝试将模块名称更改为myui或类似名称,然后从那里导入。
推荐阅读
- javascript - 在 jquery-ui 中实现两个可排序的列表,其中一个被隐藏并在拖动标题后显示
- javascript - 具有多个下拉选择的 AJAX 表过滤
- php - SilverStripe 创建/插入批量记录
- javascript - 如何使用 React 处理 Node.js API 错误
- excel - 尝试将除两个特定工作表之外的所有工作表导出到以选项卡名称命名的单个 PDF
- c# - 在 Visual Studio 项目中构建单个网页时如何确定受影响的文件以便仅使用该页面更新网站?
- python - 将非常大的 pandas 数据帧加载到 postgresql 数据库的最快方法
- finance - CS50 财务 KeyError
- php - 如何生成允许多种 HTTP 方法(此处为:GET 和 HEAD)的预签名 URI?
- ansible - 如何使用带有用户名和密码的 Ansible playbook 登录 Cisco WLC GUI 并获得输出?