由于在开发3D位移平台时,需要使用到MPS010602,但是因为MPS010602是一个独立的项目(目前还在开发),因此正好学习一下如何打包为wheel库,以及其中遇到的一些问题
源代码整理与__init__.py
首先,我们要把源代码放置在一个文件夹中,并且需要有一个__init__.py
__init__.py
应当如何编写,这篇文章写得很清楚,可以去参考一下
目前我就采用最为简易的方式
如果目录结构是这样
1 | ---MPS010602(import时所用的名称) |
那么在__init.py__
中,为了方便(不需要引用子文件名),可以这么写
1 | from MPS010602.MPSDataType import * |
需要注意在两个源文件中如果出现了交叉引用,需要修改
import
格式
setup.py
在放置代码的文件夹外,新建一个setup.py
,然后填写以下内容
1 | import setuptools |
其他部分都很简单,除了两个需要注意的地方:
- 包名称和
import
时使用的名称不同 package_data
包含了你希望包含的除了源代码以外的内容(例如说使用的动态链接库)
构建与安装
在这一文件夹下,输入python setup.py bdist_wheel
,之后在dist
文件夹内可以看见编译好的whl
文件,然后文件用pip install
可以直接安装
为了未来后续开发方便,建议一个环境开发,一个环境测试
其他的一些问题
我之前在引用动态链接库时遇到问题(因为工作目录发生改变)
因此获取自己当前的位置,可以通过os.path.dirname(os.path.abspath(__file__))
访问当前所在文件夹