【问题标题】:{Import from File} Error when importing from other directory{Import from File} 从其他目录导入时出错
【发布时间】:2013-12-01 00:31:58
【问题描述】:

我想从%appdata%/.EliteCS/sysfiles/gui.py 导入一个文件,但是每当我这样做时,就会出现这种情况。

Traceback (most recent call last):
  File "C:\Users\Samuel\Documents\Elite\elite_computer_system.py", line 10, in <
module>
    import gui
ImportError: No module named gui

C:\Users\Samuel\Documents\Elite>pause
Press any key to continue . . .

我的%appdata%/.EliteCS/sysfiles/ 文件夹包含 2 个文件:__init__.py(空 py 文件)和 gui.py,一个充满定义但没有实际代码的 py 文件。当要求 python 导入它时:

sys.path.insert(0, '%appdata%/.EliteCS/sysfiles')
import gui

它给出了错误,与 from gui import * 相同,而不是 import gui 行。 有人请告诉我我做错了什么。我不知道出了什么问题。

【问题讨论】:

  • @MartijnPieters 哎呀,这可能是错误。我会回复你的。
  • 不,错字出现在问题中。 DIR 名为 .EliteCS/sysfiles
  • '%appdata%' 没有被 Python 扩展;这不会按原样工作。
  • 感谢您指出这一点,我现在已将其更改为有限路径:现在它像梦一样工作。非常感谢,+1 给你。把它作为答案,我会接受+投票。
  • 我删除了“我是如何解决的”部分;最好留下这个问题,一个问题。

标签: python windows python-2.7 import


【解决方案1】:

Python 不会为您扩展 %appdata% 变量。

要么使用应用程序数据文件夹的绝对路径,要么从系统中检索%appdata% 变量并将其与.EliteCS/sysfiles 连接。

请参阅How do I find the Windows common application data folder using Python? 获取检索系统路径的方法,例如appdata

如果你使用环境选项,那就是:

import os
import sys

sys.insert(0, os.path.join(os.environ['APPDATA'], '.EliteCS', 'sysfiles'))

【讨论】:

    【解决方案2】:

    为什么不将 gui.py 放在与您正在运行的文件相同的文件夹中? 然后你可以说import gui,它肯定会运行。

    【讨论】:

    • 重点是文件存在于 %appdata%/.EliteCS 的迷你 FS 中,并且 .py 可以移动到任何你想要的地方。
    猜你喜欢
    • 1970-01-01
    • 2022-12-24
    • 2021-09-27
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    • 2021-01-31
    • 2018-11-20
    • 2021-01-09
    相关资源
    最近更新 更多