我有以下文件夹结构.
application/app/folder/file.py
我想从另一个驻留的Python文件中的file.py中导入一些函数
application/app2/some_folder/some_file.py
我试过了
from application.app.folder.file import func_name
和其他一些尝试,但到目前为止我无法正确导入.我怎样才能做到这一点?
如何在完整路径下加载Python模块?请注意,该文件可以位于文件系统中的任何位置,因为它是一个配置选项.
我有一个长期运行的Python服务器,并希望能够在不重新启动服务器的情况下升级服务.这样做的最佳方法是什么?
if foo.py has changed:
unimport foo <-- How do I do this?
import foo
myfoo = foo.Foo()
Run Code Online (Sandbox Code Playgroud) 如何根据相对路径导入Python模块?
例如,如果dirFoo包含Foo.py和dirBar,和dirBar包含Bar.py,我怎么导入Bar.py到Foo.py?
这是一个直观的表示:
dirFoo\
Foo.py
dirBar\
Bar.py
Run Code Online (Sandbox Code Playgroud)
Foo希望包括Bar,但重组文件夹层次结构不是一种选择.
我正在尝试遵循PEP 328,具有以下目录结构:
pkg/
__init__.py
components/
core.py
__init__.py
tests/
core_test.py
__init__.py
Run Code Online (Sandbox Code Playgroud)
在core_test.py我有以下import语句
from ..components.core import GameLoopEvents
Run Code Online (Sandbox Code Playgroud)
但是,当我运行时,我收到以下错误:
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
Run Code Online (Sandbox Code Playgroud)
搜索周围我发现" 相对路径甚至不能使用__init__.py "和" 从相对路径导入模块 ",但它们没有帮助.
这里有什么我想念的吗?
如何在Python中导入其他文件?
import file.py?例如,main.py我有:
from extra import *
Run Code Online (Sandbox Code Playgroud)
虽然这给了我所有的定义extra.py,但也许我想要的只是一个定义:
def gap():
print
print
Run Code Online (Sandbox Code Playgroud)
我怎么添加到import语句只得到gap从extra.py?
我想从同一目录中的另一个文件导入一个函数.
有时它适用于我,from .mymodule import myfunction但有时我会得到:
SystemError: Parent module '' not loaded, cannot perform relative import
Run Code Online (Sandbox Code Playgroud)
有时它适用from mymodule import myfunction,但有时我也得到:
SystemError: Parent module '' not loaded, cannot perform relative import
Run Code Online (Sandbox Code Playgroud)
我不明白这里的逻辑,我找不到任何解释.这看起来完全随机.
有人可以向我解释这一切背后的逻辑是什么吗?
我有一个存储所有.py文件的目录.
bin/
main.py
user.py # where class User resides
dir.py # where class Dir resides
Run Code Online (Sandbox Code Playgroud)
我想在main.py中使用user.py和dir.py中的类.
如何将这些Python类导入main.py?
此外,User如果user.py位于子目录中,如何导入类?
bin/
dir.py
main.py
usr/
user.py
Run Code Online (Sandbox Code Playgroud) 我正在运行Python 2.5.
这是我的文件夹树:
ptdraft/
nib.py
simulations/
life/
life.py
Run Code Online (Sandbox Code Playgroud)
(我也在__init__.py每个文件夹中,为了便于阅读,这里省略了)
如何nib从模块内导入life模块?我希望有可能不用修补sys.path.
注意:正在运行的主模块位于该ptdraft文件夹中.
想象一下这个目录结构:
app/
__init__.py
sub1/
__init__.py
mod1.py
sub2/
__init__.py
mod2.py
Run Code Online (Sandbox Code Playgroud)
我正在编码mod1,我需要从中导入一些东西mod2.我该怎么办?
我尝试了from ..sub2 import mod2但是我得到了"尝试非包装中的相对导入".
我google了一下,但发现只有" sys.path操纵"黑客.有没有干净的方式?
编辑:我__init__.py的所有人目前都是空的
EDIT2:我想这样做,因为SUB2包含了为子包(共享类sub1,subX等等).
Edit3:我正在寻找的行为与PEP 366中描述的相同(感谢John B)
python ×10
python-import ×10
importerror ×2
module ×2
directory ×1
init ×1
package ×1
path ×1
python-3.x ×1
reload ×1