如何在开发期间安装测试Python程序包?
使用 setuptools 主要是用于构建并分发包,但是我们仍然需要知道如何使用它们直接从项目源代码安装包,因为在向 PyPI 提交包之前,我们需要测试一下自己的打包代码是否正常工作,而最简单的测试方法就是安装它。
如果你将坏的软件包发送到仓库中,那么需要增加版本号才能重新上传。因此,在最终发行版之前测试打包代码是否被正确打包,可以避免不必要的版本号增加,当然也可以节省时间。
此外,在同时处理多个相关的包时,使用 setuptools 直接从自己的源代码安装有时也是必要的。
如果提供了源代码发行版,那么可以在临时文件夹中将其解压,然后用这个命令安装。除此之外,install 命令还将安装在 install_requires 元数据中定义的依赖,这是通过查看 Python 包索引上的包来完成的。
除了使用 setup.py 脚本安装包,还可以使用 pip 命令,它是 PyPA 推荐的工具,即使在本地环境为了开发而安装时,也可以使用它。
使用 pip 命令从本地源代码中安装一个包,可以运行下面这个命令:
值得一提的是,setuptools 和 distutils 都没有 uninstall (卸载)命令,而使用 pip 可以卸载任何 Python 包,命令格式如下:
这常常是集中开发过程中的一个问题,因为很容易忘记需要再次执行安装,这就是为什么 setuptools 提供了一个额外的 develop 命令的重要原因。
develop 命令的完整格式为
pip 也支持用这种模式来安装包,这个安装选项叫作可编辑模式,可 以使用 install 命令的 -e 参数来启用,代码格式如下:
如果你将坏的软件包发送到仓库中,那么需要增加版本号才能重新上传。因此,在最终发行版之前测试打包代码是否被正确打包,可以避免不必要的版本号增加,当然也可以节省时间。
此外,在同时处理多个相关的包时,使用 setuptools 直接从自己的源代码安装有时也是必要的。
Python安装和卸载程序包
通过执行Python setup.py install
命令(执行此命令时,所在目录需位于包目录下),可以将包安装到 Python 环境中。如果之前没有构建过的话,它会尝试构建包,然后将结果注入到 Python 树中。如果提供了源代码发行版,那么可以在临时文件夹中将其解压,然后用这个命令安装。除此之外,install 命令还将安装在 install_requires 元数据中定义的依赖,这是通过查看 Python 包索引上的包来完成的。
除了使用 setup.py 脚本安装包,还可以使用 pip 命令,它是 PyPA 推荐的工具,即使在本地环境为了开发而安装时,也可以使用它。
使用 pip 命令从本地源代码中安装一个包,可以运行下面这个命令:
pip install 包路径
值得一提的是,setuptools 和 distutils 都没有 uninstall (卸载)命令,而使用 pip 可以卸载任何 Python 包,命令格式如下:
pip uninstall 包名
注意,在系统级的包上尝试卸载操作可能很危险,这也是为什么使用虚拟环境进行开发很重要的另一个原因。Python开发过程中安装程序包
使用 setup.py 安装的包会被复制到当前环境的 site-packages 目录下,这意味着,一旦我们修改了包的源代码,就需要重新安装它。这常常是集中开发过程中的一个问题,因为很容易忘记需要再次执行安装,这就是为什么 setuptools 提供了一个额外的 develop 命令的重要原因。
develop 命令的完整格式为
Python setup.py develop
,该命令允许我们在开发模式下安装包,它会在部署目录(site-packages)时创建一个指向项目源代码的特殊链接,而不是将整个包复制过去,从而实现在编辑包的源代码之后无需再重新安装,并且它在 sys.path 中可用,就像正常安装一样。pip 也支持用这种模式来安装包,这个安装选项叫作可编辑模式,可 以使用 install 命令的 -e 参数来启用,代码格式如下:
pip install -e 包路径
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算