Questions tagged «python-import»

有关在Python中导入模块的问题

25
从其他文件夹导入文件
我有以下文件夹结构。 application/app/folder/file.py 我想从位于另一个Python文件中的file.py导入一些功能 application/app2/some_folder/some_file.py 我试过了 from application.app.folder.file import func_name 和其他一些尝试,但到目前为止,我无法正确导入。我怎样才能做到这一点?



19
如何导入其他Python文件?
如何在Python中导入其他文件? 我到底该如何导入特定的python文件import file.py呢? 如何导入文件夹而不是特定文件? 我想根据用户输入在运行时动态加载Python文件。 我想知道如何从文件中仅加载一个特定部分。 例如,在main.py我有: from extra import * 尽管这给了我中的所有定义extra.py,但也许我只想要一个定义: def gap(): print print 我要从import语句中添加什么?gapextra.py

22
从相对路径导入模块
给定相对路径,如何导入Python模块? 例如,如果dirFoo包含Foo.py和dirBar,和dirBar包含Bar.py,我怎么导入Bar.py到Foo.py? 这是一个视觉表示: dirFoo\ Foo.py dirBar\ Bar.py Foo希望包含Bar,但重组文件夹层次结构不是一种选择。

17
即使使用__init__.py,也如何解决“尝试以非软件包方式进行相对导入”
我正在尝试使用以下目录结构来遵循PEP 328: pkg/ __init__.py components/ core.py __init__.py tests/ core_test.py __init__.py 在core_test.py我有以下进口声明 from ..components.core import GameLoopEvents 但是,当我运行时,出现以下错误: tests$ python core_test.py Traceback (most recent call last): File "core_test.py", line 3, in <module> from ..components.core import GameLoopEvents ValueError: Attempted relative import in non-package 到处搜索时,我发现“ 即使使用__init__.py,相对路径也无法使用 ”和“ 从相对路径导入模块 ”,但是它们没有帮助。 我在这里想念什么吗?

10
Python 3中的相对导入
我想从同一目录中的另一个文件导入函数。 有时它对我有用,from .mymodule import myfunction但有时我得到: SystemError: Parent module '' not loaded, cannot perform relative import 有时它可与一起使用from mymodule import myfunction,但有时我也会得到: SystemError: Parent module '' not loaded, cannot perform relative import 我不了解这里的逻辑,也找不到任何解释。这看起来完全是随机的。 有人可以向我解释所有这些背后的逻辑是什么?

13
如何在同一目录或子目录中导入类?
我有一个存储所有.py文件的目录。 bin/ main.py user.py # where class User resides dir.py # where class Dir resides 我想从使用类user.py和dir.py在main.py。 如何将这些Python类导入main.py? 此外,User如果user.py位于子目录中,如何导入类? bin/ dir.py main.py usr/ user.py

18
从父文件夹导入模块
我正在运行Python 2.5。 这是我的文件夹树: ptdraft/ nib.py simulations/ life/ life.py (我还在__init__.py每个文件夹中,为便于阅读,在此省略) 如何nib从模块内部导入life模块?我希望无需修补sys.path就可以做到。 注意:正在运行的主模块在ptdraft文件夹中。


11
如何导入给定名称的模块为字符串?
我正在编写一个以命令作为参数的Python应用程序,例如: $ python myapp.py command1 我希望应用程序是可扩展的,也就是说,能够添加实现新命令的新模块而不必更改主应用程序源。这棵树看起来像: myapp/ __init__.py commands/ __init__.py command1.py command2.py foo.py bar.py 因此,我希望该应用程序在运行时找到可用的命令模块并执行适当的命令模块。 Python定义了__import__函数,该函数采用一个字符串作为模块名称: __import __(name,globals = None,locals = None,fromlist =(),level = 0) 该函数导入模块名称,可能使用给定的全局变量和局部变量来确定如何在程序包上下文中解释该名称。fromlist提供应从名称给定的模块中导入的对象或子模块的名称。 来源:https : //docs.python.org/3/library/functions.html# import 所以目前我有类似的东西: command = sys.argv[1] try: command_module = __import__("myapp.commands.%s" % command, fromlist=["myapp.commands"]) except ImportError: # Display error message command_module.run() 这工作得很好,我只是想知道是否可能有一种更惯用的方式来完成我们对这段代码所做的工作。 请注意,我特别不想使用鸡蛋或延伸点。这不是一个开源项目,我不希望有“插件”。关键是简化主应用程序代码,并且每次添加新命令模块时都无需对其进行修改。

15
ImportError:无法导入名称X
我有四个不同的文件,分别命名为:main,vector,entity和physics。我不会发布所有代码,而只会发布导入代码,因为我认为这就是错误所在。(如果需要,我可以发布更多信息) 主要: import time from entity import Ent from vector import Vect #the rest just creates an entity and prints the result of movement 实体: from vector import Vect from physics import Physics class Ent: #holds vector information and id def tick(self, dt): #this is where physics changes the velocity …

15
如何在Python中进行相对导入?
想象一下这个目录结构: app/ __init__.py sub1/ __init__.py mod1.py sub2/ __init__.py mod2.py 我正在编码mod1,我需要从中导入一些东西mod2。我该怎么办? 我尝试过,from ..sub2 import mod2但是得到了“未打包的相对导入尝试”。 我四处搜寻,但只发现“ sys.path操纵”骇客。有没有一种干净的方法? 编辑:我所有__init__.py的当前为空 EDIT2:我想这样做,因为SUB2包含了为子包(共享类sub1,subX等等)。 Edit3:我要寻找的行为与PEP 366中描述的相同(感谢John B)

11
从子目录导入文件?
我的档案tester.py位于/project。 /project有一个名为的子目录lib,文件名为BoxTime.py: /project/tester.py /project/lib/BoxTime.py 我想导入BoxTime的tester。我已经试过了: import lib.BoxTime 结果是: Traceback (most recent call last): File "./tester.py", line 3, in <module> import lib.BoxTime ImportError: No module named lib.BoxTime 任何想法如何BoxTime从子目录导入? 编辑 该__init__.py是问题,但不要忘了提及BoxTime作为lib.BoxTime,或使用: import lib.BoxTime as BT ... BT.bt_function()

28
Python错误“ ImportError:未命名模块”
Python安装在本地目录中。 我的目录树如下所示: (local directory)/site-packages/toolkit/interface.py 我的代码在这里: (local directory)/site-packages/toolkit/examples/mountain.py 要运行该示例,我编写python mountain.py,并且在代码中有: from toolkit.interface import interface 我得到错误: Traceback (most recent call last): File "mountain.py", line 28, in ? from toolkit.interface import interface ImportError: No module named toolkit.interface 我已经检查过了sys.path,这里有目录/site-packages。另外,我__init__.py.bin在toolkit文件夹中有该文件,以向Python指示这是一个软件包。我__init__.py.bin在示例目录中也有一个。 我不知道为什么Python在时找不到文件sys.path。有任何想法吗?可以是权限问题吗?我需要执行许可吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.