【python】setup.py的作用

简而言之,setup.py是python模块分发与安装的指导文件

有了setup.py文件,运行下面这条命令,可以进行模块的安装。

python setup.py install

下面给出setup.py的实例代码,利用这段代码,我们将安装一个叫 ugit 的模块,当运行ugit命令时,程序将运行cli.py文件下的main 函数。

+ #!/usr/bin/env python3
+ 
+ from setuptools import setup
+ 
+ setup (name = 'ugit',
+        version = '1.0',
+        packages = ['ugit'],
+        entry_points = {
+            'console_scripts' : [
+                'ugit = ugit.cli:main'
+            ]
+        })

cli.py文件下的main 函数的代码为:

+ def main ():
+     print ('Hello, World!')

如若你的项目还处于开发阶段,频繁的安装模块,也是一个麻烦事。

这时候你可以使用这条命令安装,该方法不会真正的安装包,而是在系统环境中创建一个软链接指向包实际所在目录。这边在修改包之后不用再安装就能生效,便于调试。

python setup.py develop --user

现在在命令后运行ugit命令后,程序将输出 Hello, World!

参考资料:

Git Internals - Learn by Building Your Own Git

花了两天,终于把 Python 的 setup.py 给整明白了 - 知乎

### 使用 `python setup.py` 安装 Python 项目 #### 解释 `setup.py` `setup.py` 是用于分发和安装 Python 包的标准文件。它定义了项目的元数据以及如何构建、测试和打包该项目。 #### 基本命令解释 - **`python setup.py install`**: 将包安装到全局环境中,通常需要管理员权限[^1]。 - **`python setup.py develop`**: 创建一个指向源代码位置的链接而不是复制文件到站点包目录中。这对于开发非常有用,因为可以修改源代码而无需重新安装。 - **`python setup.py build`**: 构建整个软件包并将其放置在一个临时构建目录内,但不实际安装任何东西。 - **`python setup.py build_ext --inplace`**: 只编译C扩展模块并将它们放在源树中的适当位置以便立即使用;这同样不会真正安装这些组件。 对于遇到语法错误的情况,在尝试运行 `python setup.py install` 或其他命令之前,请确认所使用的 Python 版本与 setuptools 的版本兼容,并确保环境配置正确无误[^2]。 如果希望避免处理复杂的依赖关系管理问题,则推荐优先考虑使用 pip 工具来代替直接调用 `setup.py` 进行安装操作,除非有特殊需求或是在特定环境下工作[^3]。 ```bash # 如果要安装当前目录下的Python项目至默认site-packages路径下 python setup.py install # 对于开发者来说更方便的方式是使用develop模式 python setup.py develop # 当只需要构建而不做最终安装时可选用build选项 python setup.py build # 编译C扩展供即时调试之用 python setup.py build_ext --inplace ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值