python setup.py install/build 与 python setup.py develop的区别 (python setup.py build_ext --inplace)

可以用

python setup.py --help-commands

查看help

      在源码安装某个库或包时,发现可以python setup.py install 和python setup.py develop两种方式来安装,这两种方法的区别是

①python setup.py install:主要是安装典型第三方包,这种包比较稳定,不再需要你去编辑、修改或是调试。

②python setup.py develop:当你安装一个包后,这个包需要你不断修改,这样你就不得不重新安装,这时就采用这种安装方法。

当执行python setup.py install, 程序做的事情很简单,就是 copy build/lib(或build/lib.plat)目录下的everything到python安装目录。linux下的安装目录通常是prefix/lib/pythonX.Y/site-packages

而python setup.py develop不会真正安装包,而是在系统环境中创建一个软连接指向包实际所在的目录,这样修改了相关文件之后不用再安装便能生效,便于开发调试等

有时候我们会看到有人用python setup.py build命令,有些困惑

其实python setup.py install 一条命令就已经把build 和 install都做了,但是也可以将二者分开,就像比如你想在本地build好,然后发给其他人直接install就行了,就可以这样

python setup.py build
python setup.py install

也有人这么写

python setup.py build install

这就和python setup.py install没什么区别了

build的作用是

即如果你的package中有C文件,那么他们会同时被编译,否则build命令做的就是copying

python setup.py build_ext --inplace

  • build_ext:build C/C++ extensions (compile/link to build directory),给python编译一个c、c++的拓展
  • –inplace:ignore build-lib and put compiled extensions into the source directory alongside your pure Python modules,忽略build-lib,将编译后的扩展放到源目录中,与纯Python模块放在一起
     

这里可见python setup.py build 和 python setup.py build_ext的生成的区别

Python C Extension(C拓展)_hxxjxw的博客-CSDN博客

  • 26
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这是一个用于构建 Python 扩展模块的命令,它会将 C 或 C++ 代码编译为 Python 可以调用的二进制模块。`build_ext` 表示构建扩展模块,`--inplace` 参数表示将编译出来的模块放置在当前目录下,而不是默认的安装目录中。 ### 回答2: 在Python中, setup.py build_ext --inplace 是一个命令,用于将Python模块从源代码编译成本机代码并将其放置在源代码所在的位置。 在Python中,每个模块都可以由一个或多个源代码文件组成,以实现特定功能。这些源代码文件中的Python代码需要转换为本机代码,以提高其执行速度。使用Python自带的编译器可以将Python代码编译为本机代码,并且可以指定编译后的本机代码被放置的位置。 在执行setup.py build_ext --inplace命令时,该命令会执行setup.py脚本中的 build_ext 函数,并将编译后的本机代码存储在Python模块的源代码目录中。此命令在源代码目录中生成一个包含编译后代码的子目录,名称为__pycache__。 一旦编译出的本机代码就位,Python就会将源代码和本机代码合并在一起使用。由于本机代码比Python源代码本身运行得更快,因此当Python模块需要在生产环境中被频繁使用时,使用setup.py build_ext --inplace命令可明显提高Python应用程序的性能。 总之,Python setup.py build_ext --inplace 是一个有用的命令,用于将Python源代码转换为本机代码,并将其放置在源代码所在的位置。实际应用中,可以通过它来提高Python程序的性能和可靠性。 ### 回答3: “python setup.py build_ext --inplace”是一个常用的Python命令,用于在本地编译代码并将其编译后的模块置于当前目录下。具体而言,它会在当前目录下找到一个名为“setup.py”的文件,该文件包含了用于编译Python扩展的一些设置和指令。在执行该命令时,Python将根据这些设置和指令来编译代码,并将编译后的模块生成到当前目录下。 通常情况下,我们需要使用Python扩展来完成某些任务,比如处理图像或音频等。这些扩展是用C/C++写成的,并被编译成动态链接库,可以被Python调用。当我们下载或编写这些扩展时,我们通常需要编译它们并将它们作为Python模块使用。而“python setup.py build_ext --inplace”就是为了方便这一过程的。 值得注意的是,使用该命令时,我们需要在当前目录下含有“setup.py”文件,并且已经安装了必要的编译环境和库文件。否则编译过程会失败。因此,在使用该命令之前,建议先查看官方文档,了解其使用方法和可能遇到的问题。 总之,“python setup.py build_ext --inplace”是Python开发中常常用到的一个命令,可以帮助我们方便地编译Python扩展,并将生成的模块直接放在当前目录下,方便使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值