两者之间是否有任何显着差异
pip install -e /path/to/mypackage
Run Code Online (Sandbox Code Playgroud)
和setuptools变种?
python /path/to/mypackage/setup.py develop
Run Code Online (Sandbox Code Playgroud) 我如何setup.py从我的包中获得定义的版本(用于--version或其他目的)?
我刚刚开始使用setuptools和virtualenv.我的包需要最新的python-gearman,只能从GitHub获得.PyPI上的python-gearman版本是旧版本.Github源代码是setuptools兼容的,即有setup.py等.有没有办法让setuptools下载并安装新版本,而不是在PyPI上查找并安装旧版本?
仅供参考,新的python-gearman是http://github.com/mtai/python-gearman
我在Windows 7 64位上运行Python 2.7,当我运行setuptools的安装程序时,它告诉我没有安装Python 2.7.具体的错误消息是:
`Python Version 2.7 required which was not found in the registry`
Run Code Online (Sandbox Code Playgroud)
我安装的Python版本是:
`Python 2.7 (r27:82525, Jul 4 2010, 07:43:08) [MSC v.1500 64 bit (AMD64)] on win32`
Run Code Online (Sandbox Code Playgroud)
我正在查看setuptools站点,它没有提到64位Windows的任何安装程序.我是否遗漏了某些内容或者是否必须从源代码安装此内容?
Python就可以用于打包和描述项目的工具,一个令人困惑的历史:这些包括distutils标准库中,distribute,distutils2,和setuptools(也许更多).看来,distribute和distutils2赞成被中止setuptools,这让两个相互竞争的标准.
据我所知,setuptools提供了更多的选项(例如声明依赖项,测试等)distutils,但它没有包含在Python标准库中(但是?).
所述的Python包装用户指南 [ 1 ]现在建议:
使用
setuptools定义的项目和创建源代码分发.
并解释说:
尽管您可以
distutils在许多项目中使用pure ,但它不支持在其他项目上定义依赖项,并且缺少一些便于实际自动填充包提供的包元数据的便利实用程序setuptools.作为标准库之外,setuptools还在不同版本的Python中提供更一致的功能集,并且(不同distutils)setuptools将更新以在所有支持的版本上生成即将推出的"Metadata 2.0"标准格式.即使是那些选择使用的项目
distutils,当pip直接从源代码安装这样的项目时(而不是从预先构建的wheel文件安装),它实际上会使用setuptools而不是使用它来构建项目.
但是,查看各种项目的setup.py文件会发现这似乎不是一个真正的标准.许多软件包仍在使用,distutils而那些支持setuptools经常混合setuptools使用,distutils例如通过执行后备导入:
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
Run Code Online (Sandbox Code Playgroud)
接着尝试找到一种方法来编写可由两者setuptools和两者安装的设置distutils.这通常包括各种容易出错的依赖性检查方法,因为distutils它不支持setup函数中的依赖性.
为什么人们仍然需要额外的努力来支持distutils- 事实setuptools是标准库不是唯一的原因吗? …
使用setuptools/distribute时,我无法让安装程序提取任何package_data文件.我读过的所有内容都表明以下是正确的方法.有人可以建议吗?
setup(
name='myapp',
packages=find_packages(),
package_data={
'myapp': ['data/*.txt'],
},
include_package_data=True,
zip_safe=False,
install_requires=['distribute'],
)
Run Code Online (Sandbox Code Playgroud)
myapp/data/数据文件的位置在哪里.
版本 pip 21.2.4 python 3.6
命令:
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
我的内容requirements.txt:
pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)
该命令失败并出现此错误
mongoengine==0.19.1
numpy==1.16.2
pylint
pandas==1.1.5
fawkes
Run Code Online (Sandbox Code Playgroud) "Python Distribute"指南(位于python-distribute.org,但注册已失效)告诉我包含doc/txt文件和.py文件被排除在MANIFEST.in文件中
该sourcedist文档告诉我只有sdist用途MANIFEST.in,并只包括文件指定和包含.py文件.它还告诉我使用:python setup.py sdist --manifest-only生成一个MANIFEST,但是python告诉我这个不存在
我很欣赏这些来自不同版本的python并且分发系统完全混乱,但假设我使用的是python 3和setuptools(包括分发但现在称为setuptools的新的,而不是仅用于分发工具的旧的setuptools)被重新分配并分发重命名为setuptools .....)
我正在遵循'标准'文件夹结构和setup.py文件,
MANIFEST.in吗?当一个项目仅通过via pyproject.toml(即没有文件)指定时setup.{py,cfg},如何以可编辑模式通过via pip(即python -m pip install -e .)安装它?
我尝试了setuptools和poetry构建系统,但都不起作用:
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
Run Code Online (Sandbox Code Playgroud)
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
Run Code Online (Sandbox Code Playgroud)
我在两个构建系统上都遇到相同的错误:
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
Run Code Online (Sandbox Code Playgroud)
我在conda环境中使用它,以下是我的setuptools和版本pip:
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
Run Code Online (Sandbox Code Playgroud) 是这样的,人们似乎最常推荐:
$ sudo apt-get install python-setuptools
$ sudo easy_install pip
$ sudo pip install virtualenv
Run Code Online (Sandbox Code Playgroud)
或者这是我从http://www.pip-installer.org/en/latest/installing.html获得的:
$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...
Run Code Online (Sandbox Code Playgroud)
还是完全不同的东西?
python ×10
setuptools ×10
pip ×4
distutils ×2
easy-install ×2
distribute ×1
packaging ×1
pypi ×1
python-3.x ×1
virtualenv ×1