标签: distutils2

从命令行上传时如何覆盖pypi包?

我想在某些情况下自动化上传过程错误python setup.py upload失败,因为pypi服务器已经上传了保存版本.

如何从脚本强制上传(我知道我可以使用Web界面删除旧版本).

distutils pypi distutils2

21
推荐指数
2
解决办法
6507
查看次数

如何在Gnome中发布Python包的`.desktop`文件和图标(带有distutils或setuptools)?

目前我正在使用自动工具来构建/安装和打包我的项目,但我真的想转向感觉更"pythonic"的东西.

我的项目包括两个脚本,一个模块,两个glade GUI描述和两个.desktop文件.它目前是一个纯粹的python项目,虽然很快就会改变.

看看setuptools,我可以很容易地看到如何处理除.desktop文件之外的所有内容; 他们必须最终进入特定目录,以便Gnome可以找到它们.

使用distuils/setuptools是一个好主意吗?

python packaging gnome setuptools distutils2

9
推荐指数
1
解决办法
2222
查看次数

分发没有.py扩展名的Python脚本

如果我用Python写一个分发包,我把一些脚本在被视为可执行文件scriptssetup.py,有没有办法让他们不要有*.py扩展名的标准方式?仅仅制作没有.py扩展名的文件,还是需要额外的东西?是否会从文件名中删除.py,这会破坏与setup.py/ distutils等Python工具相关的任何功能?谢谢.

python distutils setuptools package distutils2

6
推荐指数
1
解决办法
1915
查看次数

如何告诉distutils子目录中的包?

我有一个setup.py正在处理的项目的文件,需要提供几个尚未在奶酪店中发布的第三方软件包.其中一个是来自这个git存储库的'spine'和'pyguts'模块:

https://github.com/terrysimons/spine-python

通常我可以通过在我的setup.py文件中指定以下项来从gitgub安装东西(为清楚起见,省略了几行):

#! /usr/bin/python
# Encoding: UTF-8

from setuptools import setup, find_packages


setup(
    # More stuff in here...
    dependency_links=[
            'https://github.com/bitcraft/PyTMX/archive/master.zip#egg=PyTMX',
        ],
    install_requires=[
        'PyTMX',
        ],
)
Run Code Online (Sandbox Code Playgroud)

但是,这只能起作用,因为PyTMXsetup.py在存储库的根目录中有它的文件.

如果我尝试为spinepyguts存储库做类似的事情,就像这样:

#! /usr/bin/python
# Encoding: UTF-8

from setuptools import setup, find_packages

__version__ = '0.0.1'



setup(
    dependency_links=[
            'https://github.com/bitcraft/PyTMX/archive/master.zip#egg=PyTMX',
            'https://github.com/terrysimons/spine-python/archive/master.zip#egg=spine',
        ],
    install_requires=[
        'PyTMX',
        'spine',
        ],
)
Run Code Online (Sandbox Code Playgroud)

然后distutils抱怨我跑python setup.py install:

Searching for spine
Best match: spine [unknown version]
Downloading https://github.com/terrysimons/spine-python/archive/master.zip#egg=spine
Processing master.zip
error: Couldn't find …
Run Code Online (Sandbox Code Playgroud)

python github distutils2

5
推荐指数
1
解决办法
278
查看次数

获取错误只能上传一个sdist

为什么这会创建 2 个 tar.gz 文件, ' python setup.py sdist?我正在尝试使用上传 twine upload -r pypitest dist/*.tar.gz,但出现错误提示

HTTPError: 400 Client Error: Only one sdist may be uploaded per release. for url: https://test.pypi.org/legacy/
ERROR: Job failed: exit code 1
Run Code Online (Sandbox Code Playgroud)

这是完整的setup.py

distutils pypi distutils2 twine

5
推荐指数
1
解决办法
1272
查看次数

仅在setup.py中可能时编译可选的cython扩展

我有一个完全在python中实现的python模块。(出于便携性原因。)

cython模块中已复制了一小部分的实现。在可能的情况下提高性能。

我知道如何使用来安装.ccython创建的模块distutils。但是,如果一台机器没有安装编译器,我怀疑即使该模块在纯python模式下仍然可用,安装也会失败。

有没有办法编译该.c模块(如果可能的话),但无法正常运行,如果无法编译,则在没有该模块的情况下进行安装?

python distutils cython setup.py distutils2

4
推荐指数
1
解决办法
973
查看次数

更改 setup.py 中的输出文件名(distutils.extension)

这是我的设置.py

from distutils.core import setup
from distutils.extension import Extension
from Cython.Build import cythonize

wrapper = Extension(
    name="libwrapper",
    ...
)
setup(
    name="libwrapper",
    ext_modules=cythonize([wrapper])
)
Run Code Online (Sandbox Code Playgroud)

当我运行python3 setup.py build_ext输出文件时,称为libwrapper.cpython-36m-x86_64-linux-gnu.so,但我只想命名它libwrapper.so,我该怎么做?

python distutils setup.py python-3.x distutils2

4
推荐指数
1
解决办法
1882
查看次数

自动将protobuf规范编译为setup.py中的python类

我有一个python项目,它使用谷歌protobufs作为通过网络进行通信的消息格式.使用该protoc程序直接从.proto文件生成python文件.如何setup.py为项目配置文件以便自动调用protoc命令?

python distutils protocol-buffers distutils2

3
推荐指数
1
解决办法
2095
查看次数

如何构建符合 PEP384 的 Python 扩展模块并使用正确的 ABI3 标签对其进行打包?

mymodule.c 启动如下:

#define PY_SSIZE_T_CLEAN
#define Py_LIMITED_API 0x03070000 
#include "Python.h"
Run Code Online (Sandbox Code Playgroud)

它构建时没有错误和警告。然而,生成的文件被命名为

mymodulename.cpython-37m-x86_64-linux-gnu.so
Run Code Online (Sandbox Code Playgroud)

构建命令:

$ python setup.py build
Run Code Online (Sandbox Code Playgroud)

当我改为发出

$ pip wheel .
Run Code Online (Sandbox Code Playgroud)

轮子中包含的扩展名称相同,因此轮子也没有 ABI3 标签。

我期望文件名是 abi3 或类似的文件名,如 PEP 425 中所述。

到目前为止我的研究令人沮丧。我查看了 PEP 384 和 425、docs.python.org 上的文档和相关教程,特别是它的 C/API 和 distutils、PYPA 的文档、setuptools、wheel 和 pip 上的文档 - 无济于事。

当前 Python 源发行版中包含的文件 /modules/xxmodule.c 仅具有历史意义。
我在这里缺少什么?

c python distutils setuptools distutils2

3
推荐指数
1
解决办法
839
查看次数