有没有一种方便的方法来翻译“a”字;从A进口B作为C“;使用特定路径导入python
我希望导入python模块,而不将其包含文件夹添加到python路径。我想让进口看起来像有没有一种方便的方法来翻译“a”字;从A进口B作为C“;使用特定路径导入python,python,python-import,Python,Python Import,我希望导入python模块,而不将其包含文件夹添加到python路径。我想让进口看起来像 from A import B as C 由于需要使用特定的路径,导入如下所示 import imp A = imp.load_source('A', 'path') C = A.B 对于长路径和模块名,这是非常不容易的。有没有更简单的方法?是否有一种方法,不将模块添加到局部变量(无A)?如果您只是不希望A在全局级别可见,可以将导入(imp.load\u source)粘贴到函数中。如果您实际上根本不想
from A import B as C
由于需要使用特定的路径,导入如下所示
import imp
A = imp.load_source('A', 'path')
C = A.B
对于长路径和模块名,这是非常不容易的。有没有更简单的方法?是否有一种方法,不将模块添加到局部变量(无A)?如果您只是不希望
A
在全局级别可见,可以将导入(imp.load\u source
)粘贴到函数中。如果您实际上根本不想在本地范围内使用模块对象,您也可以这样做,但我不推荐这样做
如果模块A
是一个python源文件,您可以读取该文件(甚至只是您想要的相关部分)并在其上运行exec
source.py
假设您有一些代码想要my_func
path = '/path/to/source.py'
execfile(path)
my_func()
# 'hello'
请注意,您还将获得文件中定义的任何其他内容(如MY\u GLOBAL\u VAR
)。再说一次,这也行,但我不推荐
- 查看您的代码的人将无法看到
的来源my_func
- 实际上,您所做的事情与导入中的
import,这在python中通常是不受欢迎的,因为您可能会将所有不想要的东西导入到名称空间中。即使它现在可以工作,如果源代码发生更改,它也可以导入隐藏在您自己的全局符号后面的名称是一样的*
- 这可能是一个安全漏洞,因为您可能正在执行一个不受信任的源文件
- 它比常规的python导入要详细得多
path = '/path/to/source.py'
execfile(path)
my_func()
# 'hello'