标签: setuptools

如何使安装工具安装github分叉的PyPI包?

这是示例场景.

有一个python包not-mine,我刚刚发现了一个小bug.我在github上找到源代码并分叉存储库.我进行了必要的更改并提交了拉取请求.不幸的是,包裹作者正在度假,我有一个截止日期.

我需要一种方法来安装我的分叉存储库而不是生活在PyPI上的作者版本.我试过以下但没有成功:

install_requires = [
    'not-mine==1.0.0'
],
dependency_links = [
    'http://github.com/my-username/not-mine/tarball/master#egg=not-mine-1.0.0'
]
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

我在调查问题时偶然发现的资源: 如何让setuptools安装一个不在PyPI上的软件包?

python fork github setuptools pypi

15
推荐指数
1
解决办法
1777
查看次数

使用已编译的动态共享库分发Python包

如何将Python模块与预编译.so库一起打包?具体来说,setup.py当我在Python中执行此操作时,如何编写

>>> import top_secret_wrapper
Run Code Online (Sandbox Code Playgroud)

它可以很容易地找到top_secret.so而不必设置LD_LIBRARY_PATH

在我的模块开发环境中,我有以下文件结构:

.
??? top_secret_wrapper
?   ??? top_secret.so
?   ??? __init__.py
??? setup.py
Run Code Online (Sandbox Code Playgroud)

在里面__init__.py,我有类似的东西:

import top_secret
Run Code Online (Sandbox Code Playgroud)

这是我的 setup.py

from setuptools import setup, Extension

setup(
    name = 'top_secret_wrapper',
    version = '0.1',
    description = 'A Python wrapper for a top secret algorithm',
    url = None,
    author = 'James Bond',
    author_email = 'James.Bond.007@mi6.org',
    license = 'Spy Game License',
    zip_safe = True,
)
Run Code Online (Sandbox Code Playgroud)

我确定我setup.py缺少一个指定位置的设置top_secret.so,虽然我不知道该怎么做.

python distutils setuptools package

15
推荐指数
2
解决办法
5268
查看次数

Ubuntu + virtualenv =乱七八糟?virtualenv讨厌dist-packages,想要网站包

有人可以向我解释一下ubuntu 9.04中python的用途吗?

我正试图旋转virtualenv,--no-site-packages旗帜似乎与ubuntu无关.我安装virtualenv 1.3.3easy_install(我已经升级到setuptools 0.6c9),似乎安装了一切/usr/local/lib/python2.6/dist-packages

假设在使用apt-get安装软件包时,它被放入/usr/lib/python2.6/dist-packages/

问题是,还有一个/usr/local/lib/python2.6/site-packages只是坐在那里是空的.看起来(通过查看patha virtualenv),这是virtualenv用作备份的文件夹.因此,即使我想省略--no-site-packages,我也无法从我的任何virtualenv访问我的本地系统包.

所以我的问题是:

  1. 我如何virtualenv指向其中一个dist-packages
  2. 我应该指出哪些包装?/usr/lib/python2.6/dist-packages要么/usr/local/lib/python2.6/dist-packages/
  3. 有什么意义/usr/lib/python2.6/site-packages?那里什么都没有!
  4. 它是先到先得的路径吗?如果我有一个更新版本的XYZ安装包/usr/local/lib/python2.6/dist-packages/和更老版本(来自ubuntu repos/apt-get)/usr/lib/python2.6/dist-packages,哪一个导入我import xyz?我假设这是基于路径列表,是吗?
  5. 为什么这么混乱?这里有什么我想念的吗?
  6. easy_install应该安装到哪里定义/usr/local/lib/python2.6/dist-packages
  7. 这会影响pip吗?

感谢任何能够清除这一点的人!

python ubuntu setuptools virtualenv

14
推荐指数
2
解决办法
8794
查看次数

Python包安装在Windows中

我最近开始学习Python,我对如何分发和安装软件包感到困惑.

我知道安装软件包的官方方式是distutils:你下载源tarball,解压缩它,然后运行:python setup.py install,然后模块将自动安装自己

我也知道带有帮助脚本的setuptoolseasy_install.它使用鸡蛋进行分发,根据我的理解,它构建在distutils之上并执行与上面相同的操作,并且它处理所需的任何依赖项,所有依赖于PyPi

然后还有pip,我仍然不确定它与其他人有什么不同.

最后,当我在Windows机器上时,许多软件包还通过Windows安装程序提供二进制构建,特别是那些需要编译C/Fortran代码的软件包,否则这将是在Windows上手动编译的噩梦(假设您有MSVC)或MinGW/Cygwin开发环境,所有必要的库设置..尽管如此,尝试自己建立numpy或scipy,你会明白!)

所以有人可以帮助我理解所有这些,并解释每种方法的差异,利弊.我想知道每个人如何跟踪包(Windows注册表,配置文件,...).特别是,您将如何管理所有第三方库(能够列出已安装的软件包,禁用/卸载等).

python distutils packages pip setuptools

14
推荐指数
1
解决办法
2779
查看次数

为python包制作可选C扩展的最简单方法是什么?

我已经创建了一个C扩展,我想在我的Python包中启用(使用setuptools),只有传入命令行选项.最简单的方法是什么?

我似乎无法找到任何直截了当的方式来解决这个问题.

python setuptools cython python-c-extension

14
推荐指数
2
解决办法
1960
查看次数

无法使用easy_install来安装Python模块

我试图使用easy_install安装一个模块调用的请求

easy_install requests
Run Code Online (Sandbox Code Playgroud)

一周前我使用Python 2.6.5时运行良好,但今天我安装了Python 2.7.2,然后import requests在我的一个脚本中尝试但是失败了.我然后尝试重新安装请求,easy_install requests但收到此错误

install_dir /usr/local/lib/python2.6/dist-packages/
error: can't create or remove files in install directory

The following error occurred while trying to add or remove files in the
installation directory:

    [Errno 13] Permission denied: '/usr/local/lib/python2.6/dist-packages/test-easy-install-15207.pth'

The installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

    /usr/local/lib/python2.6/dist-packages/

Perhaps your account does not have write access to this directory?  If the
installation directory is a system-owned …
Run Code Online (Sandbox Code Playgroud)

python installation module setuptools easy-install

14
推荐指数
2
解决办法
6万
查看次数

将数据文件添加到python项目setup.py

我有一个这样的项目:

??? CHANGES.txt
??? LICENSE
??? MANIFEST.in
...
??? docs
?   ??? index.rst
??? negar
?   ??? Negar.py
?   ??? Virastar.py
?   ??? Virastar.pyc
?   ??? __init__.py
?   ??? data
?   ?   ??? __init__.py
?   ?   ??? untouchable.dat
?   ??? gui.py
?   ??? gui.pyc
?   ??? i18n
?   ?   ??? fa_IR.qm
?   ?   ??? fa_IR.ts
?   ??? negar.pro
??? setup.py
...
Run Code Online (Sandbox Code Playgroud)

在里面我的文件Virastar.py需要一些数据data.untouchable.dat.它工作正常,直到我用这个安装项目setup.py:

setup(
    ...
    include_package_data=True,
    packages = find_packages() + ['negar'],
    package_dir={'negar': 'negar'},
    package_data={'negar': ['data/*.dat']}, …
Run Code Online (Sandbox Code Playgroud)

python setuptools setup.py

14
推荐指数
2
解决办法
2万
查看次数

为什么我的pip冻结时不会出现setuptools 1.3.1?

virtualenvwrapper在Ubuntu 12.04上运行和朋友(virtualenvwrapper 1.7.1.2,virtualenv 1.7.1.2,pip 1.0,Distribute 0.6.24,Python 2.7).为了能够pip install matplotlib我需要更新版本的Distribute/setuptools,所以我执行以下操作:

$ mkvirtualenv new_venv
$ pip install matplotlib # fails
$ easy_install -U distribute
# installs Distribute 0.7.3 in the venv,
# which then installs setuptools 1.3.1
$ pip install matplotlib # works
Run Code Online (Sandbox Code Playgroud)

但是,当我跑步时,pip freeze我得到:

argparse==1.2.1
distribute==0.7.3 # here's Distribute
matplotlib==1.3.1
nose==1.3.0
numpy==1.8.0
pyparsing==2.0.1
python-dateutil==2.2
six==1.4.1
tornado==3.1.1
wsgiref==0.1.2
Run Code Online (Sandbox Code Playgroud)

在哪里setuptools?我试过了pip install setuptools,它也没有出现在那里.

pip setuptools virtualenv distribute

14
推荐指数
2
解决办法
1655
查看次数

setuptools python setup.py安装不复制所有子模块

包dir结构就是这样

repodir/
-------- setup.py
-------- MANIFEST.in

-------- bin/
----------- awsm.sh

-------- sound/
------------ init.py

------------ echo/
----------------- init.py
----------------- module1.py
----------------- module2.py

------------ effects/
------------------- init.py
------------------- module3.py
------------------- module4.py
Run Code Online (Sandbox Code Playgroud)

setup.py

from setuptools import setup
setup(
        name = 'sound',
        version = '0.1',
        author = 'awesomeo',
        author_email = 'awesomeo@email.com',
        description = 'awesomeo',
        license = 'Proprietary',
        packages = ['sound'],
        scripts = ['bin/awsm.sh'],
        install_requires = ['Django==1.8.2', 'billiard', 'kombu', 'celery', 'django-celery' ],
        zip_safe = False,
    )
Run Code Online (Sandbox Code Playgroud)

当我这样做 - python setup.py install时,只有sound/init .py被复制到/Library/Python/2.7/site-packages/sound/目录.

其余的子包回声,环绕声和效果根本不会被复制.Setuptools创建一个包含SOURCES.txt文件的sound.egg-info …

python setuptools

14
推荐指数
2
解决办法
5626
查看次数

在 pyproject.toml 中指定测试依赖项并使用 pip install -e 安装它们

我有一个pyproject.toml与下面类似的 Python 项目。我用来python build生成一个用于在生产环境中安装的包。对于开发环境,我使用pip install -e .

我试图弄清楚如何确保为开发环境安装测试依赖项,而不是作为生产环境的一部分。

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[tool.setuptools]
package-dir = {"" = "src"}
packages = [
    "package-a",
    "package-b",
]

[tool.setuptools.package-data]
"*" = [
    "path/to/*.txt"
]

[project]
name = "my-project"
version = "0.0.1"

authors = [
  { name="devnectar", email="a@b.com" },
]

description = "description goes here"
readme = "README.md"
requires-python = ">=3.10"

classifiers = [
    "Programming Language :: Python :: 3",
    "License :: OSI Approved :: MIT License", …
Run Code Online (Sandbox Code Playgroud)

python setuptools python-packaging pyproject.toml

14
推荐指数
1
解决办法
8245
查看次数