python setuptools可编辑安装与并行构建
我知道关于使用setuptools的并行python构建,在这里和互联网上都有一些问题。然而,没有一个能提供解决方案。还值得一提的是,我遇到的大多数人都是5岁以上 在安装过程中,我似乎可以通过以下方式实现所需的并行化:python setuptools可编辑安装与并行构建,python,setuptools,Python,Setuptools,我知道关于使用setuptools的并行python构建,在这里和互联网上都有一些问题。然而,没有一个能提供解决方案。还值得一提的是,我遇到的大多数人都是5岁以上 在安装过程中,我似乎可以通过以下方式实现所需的并行化: >> python setup.py build -j 4 >> python setup.py install 但这不适用于可编辑安装,即用于开发。可编辑安装需要调用python setup.py develope,而不是上述两个命令。但是,开发没有-
>> python setup.py build -j 4
>> python setup.py install
但这不适用于可编辑安装,即用于开发。可编辑安装需要调用python setup.py develope
,而不是上述两个命令。但是,开发
没有-j
标志。例如,如果我尝试在构建之后调用它
>> python setup.py build -j 4
>> python setup.py develop
我得到一个错误:
running develop
running egg_info
creating My_Package.egg-info
writing My_Package.egg-info/PKG-INFO
writing dependency_links to My_Package.egg-info/dependency_links.txt
writing top-level names to My_Package.egg-info/top_level.txt
writing manifest file 'My_Package.egg-info/SOURCES.txt'
reading manifest file 'My_Package.egg-info/SOURCES.txt'
writing manifest file 'My_Package.egg-info/SOURCES.txt'
running build_ext
copying build/lib.linux-x86_64-3.7_my_package_ext/_enums.cpython-37m-x86_64-linux-gnu.so _my_package_ext
error: could not create _my_package_ext/_enums.cpython-37m-x86_64-linux-gnu.so': No such file or directory
此外,还需要使用pip安装-e--用户
而不是python setup.py开发。如果我尝试在并行构建之后调用它,我会得到:
>> python setup.py build -j 4
>> pip install -e . --user
Running setup.py (path:/package/setup.py) egg_info for package from file:///package
Running command python setup.py egg_info
running egg_info
writing My-Package.egg-info/PKG-INFO
writing dependency_links to My-Package.egg-info/dependency_links.txt
writing top-level names to My-Package.egg-info/top_level.txt
reading manifest file 'My-Package.egg-info/SOURCES.txt'
writing manifest file 'My-Package.egg-info/SOURCES.txt'
Source in /package has version 0.0, which satisfies requirement My-Package==0.0 from file:///package
Installing collected packages: My-Package
Running setup.py develop for My-Package
Running command /usr/bin/python3 -c "import setuptools, tokenize;__file__='/package/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" develop --no-deps --user --prefix=
running develop
running egg_info
writing My-Package.egg-info/PKG-INFO
writing dependency_links to My-Package.egg-info/dependency_links.txt
writing top-level names to My-Package.egg-info/top_level.txt
reading manifest file 'My-Package.egg-info/SOURCES.txt'
writing manifest file 'My-Package.egg-info/SOURCES.txt'
running build_ext
copying build/lib.linux-x86_64-3.6/_my_package_ext/_enums.cpython-36m-x86_64-linux-gnu.so -> _my_package_ext
error: could not create '_my_package_ext/_enums.cpython-36m-x86_64-linux-gnu.so': No such file or directory
Cleaning up...
Command "/usr/bin/python3 -c "import setuptools, tokenize;__file__='/package/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" develop --no-deps --user --prefix=" failed with error code 1 in /package/
有人知道在可编辑安装中获得并行构建的好方法吗?理想情况下,虽然是
pip安装-e…
公式,但实际上任何东西都比什么都好。有些相关,也许可以从中获得一些见解:python setup.py build-j5 develope
应该可以工作,或者添加一个。对于使用pip
的开发人员安装,pip安装-可编辑--global option=“build\u ext”--global option=“-j5”
应该可以这样做。@hoefling:任何关于为什么python setup.py build-j5 develope
的文档都可以,但作为单独的命令来执行却不行?顺便说一句,它对我不起作用——失败了,错误与OP相同。我将看到一个最小的可复制示例distutils/command/build\u ext.py
只对包中的每个扩展进行并行化,而不是像适当的Makefile那样对构建中的每个源文件进行并行化。