相关疑难解决方法(0)

如何在Python中创建命名空间包?

在Python中,命名空间包允许您在多个项目中传播Python代码.当您想要将相关库作为单独的下载发布时,这非常有用.例如,使用目录Package-1Package-2in PYTHONPATH,

Package-1/namespace/__init__.py
Package-1/namespace/module1/__init__.py
Package-2/namespace/__init__.py
Package-2/namespace/module2/__init__.py
Run Code Online (Sandbox Code Playgroud)

最终用户可以import namespace.module1import namespace.module2.

定义命名空间包的最佳方法是什么,因此多个Python产品可以在该命名空间中定义模块?

python namespaces package

132
推荐指数
3
解决办法
5万
查看次数

导入任意python源文件.(Python 3.3+)

如何.pyPython 3.3+中导入任意python源文件(其文件名可以包含任何字符,并不总是以其结尾)?

我使用imp.load_module如下:

>>> import imp
>>> path = '/tmp/a-b.txt'
>>> with open(path, 'U') as f:
...     mod = imp.load_module('a_b', f, path, ('.py', 'U', imp.PY_SOURCE))
...
>>> mod
<module 'a_b' from '/tmp/a-b.txt'>
Run Code Online (Sandbox Code Playgroud)

它仍然适用于Python 3.3,但根据imp.load_module文档,它已被弃用:

从版本3.3开始不推荐使用:不需要使用加载器来加载模块,并且不推荐使用find_module().

imp模块文档建议使用importlib:

注意新程序应使用importlib而不是此模块.

在不使用已弃用的imp.load_module函数的情况下,在Python 3.3+中加载任意python源文件的正确方法是什么?

python python-3.x python-3.3

54
推荐指数
4
解决办法
2万
查看次数

标签 统计

python ×2

namespaces ×1

package ×1

python-3.3 ×1

python-3.x ×1