Kit*_*Kit 15 python distutils setuptools package
如何将Python模块与预编译.so库一起打包?具体来说,setup.py当我在Python中执行此操作时,如何编写
>>> import top_secret_wrapper
Run Code Online (Sandbox Code Playgroud)
它可以很容易地找到top_secret.so而不必设置LD_LIBRARY_PATH?
在我的模块开发环境中,我有以下文件结构:
.
??? top_secret_wrapper
? ??? top_secret.so
? ??? __init__.py
??? setup.py
Run Code Online (Sandbox Code Playgroud)
在里面__init__.py,我有类似的东西:
import top_secret
Run Code Online (Sandbox Code Playgroud)
这是我的 setup.py
from setuptools import setup, Extension
setup(
name = 'top_secret_wrapper',
version = '0.1',
description = 'A Python wrapper for a top secret algorithm',
url = None,
author = 'James Bond',
author_email = 'James.Bond.007@mi6.org',
license = 'Spy Game License',
zip_safe = True,
)
Run Code Online (Sandbox Code Playgroud)
我确定我setup.py缺少一个指定位置的设置top_secret.so,虽然我不知道该怎么做.
我最终做的是:
setup(
name='py_my_lib',
version=version, # specified elsewhere
packages=[''],
package_dir={'': '.'},
package_data={'': ['py_my_lib.so']},
)
Run Code Online (Sandbox Code Playgroud)
这样我就可以按名称导入 lib,并且没有其他级别的嵌套:
import py_my_lib
Run Code Online (Sandbox Code Playgroud)
并不是
from py_my_lib_wrapper import py_my_lib
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5268 次 |
| 最近记录: |