运行时.. python setup.py sdist register upload ..我得到以下输出: running register We need to know who you are, so please choose either: 1. use your existing login, 2. register as a new user, 3. have the server generate a new password for you (and email it to you), or 4. quit Your selection [default 1]: 1 Username: […]
我刚刚把我的软件包的新版本上传到了PyPi(1.2.1.0-r4):我可以下载egg文件并用easy_install安装,版本检查正确。 但是当我尝试使用pip安装时,它将安装1.1.0.0版本。 即使我明确指定的版本与pip install -Iv tome==1.2.1.0-r4 ,我得到这个消息: Requested tome==1.2.1.0-r4, but installing version 1.1.0.0 ,但我不明白为什么。 我parse_version检查parse_version并确认1.2.1上的版本string大于1.1.0上的版本string,如下所示: >>> from pkg_resources import parse_version as pv >>> pv('1.1.0.0') < pv('1.2.1.0-r4') True >>> 那么有什么想法,为什么它select安装1.1.0呢?
我的目标是分发一个Python包,其中有几个其他广泛使用的Python包作为依赖关系。 我的软件包取决于编写良好的Pypi索引软件包,如pandas,scipy和numpy,并在setup.py中指定需要某些版本或更高版本,例如“numpy> = 1.5”。 我发现对于那些不擅长Python打包(即使他们知道如何编写Python)的Unix精明用户来说,安装像我这样的软件包,即使使用本应该易于使用的软件包pipe理器,也是极其令人沮丧和几乎不可能的。 我想知道是否有人可以提供这个痛苦过程的替代scheme,或者如果我的经验仅仅反映了当前Python封装和分发的困境。 假设用户将你的软件包下载到他们的系统上。 大多数人会尝试安装它“天真”,使用像这样的东西: $ python setup.py install 因为如果你的谷歌说明安装Python包,通常会出现这种情况。 这对绝大多数用户来说是失败的,因为大多数用户在他们的Unix / Linux服务器上没有root权限。 随着更多的search,他们会发现“ – 前缀”选项,并尝试: $ python setup.py install –prefix=/some/local/dir 由于用户没有意识到Python打包的复杂性,他们会select一个任意目录作为–prefix的参数,例如"~/software/mypackage/" 。 它不会是一个干净的pipe理目录,其他所有Python包都驻留在这里,因为大多数用户都不知道这些细节。 如果他们安装另一个软件包“myotherpackage”,他们可能会通过它"~/software/myotherpackage" ,你可以想象这将导致PYTHONPATH和其他并发症的黑客入侵。 继续安装过程,使用"–prefix"调用"setup.py install"也将失败,一旦用户尝试使用该软件包,即使它似乎已经被正确安装,因为其中一个依赖关系可能会丢失(例如pandas,scipy或numpy),并且不使用包pipe理器。 他们将尝试单独安装这些软件包。 即使成功,由于给予"–prefix"的非标准目录, PYTHONPATH包将不可避免地在PYTHONPATH ,患者用户将会修改其PYTHONPATH来获取依赖关系。 在这个阶段,一位Python精明的朋友可能会告诉用户,他们应该使用像"easy_install"的主streampipe理器的软件包pipe理器来安装软件,并且依赖关系被处理。 安装"easy_install" ,可能很难,他们会尝试: $ easy_install setup.py 这也将失败,因为用户通常没有权限在生产Unix服务器上全局安装软件。 随着更多的阅读,他们将了解"–user"选项,并尝试: $ easy_install setup.py –user 他们会得到这个错误: usage: easy_install [options] requirement_or_url … or: easy_install […]
我不知道我是否正确地组织了我的包结构,或者在setup.py中使用了正确的选项,因为我在尝试运行unit testing时遇到错误。 我有这样的结构: /project /bin /src /pkgname __init__.py module1.py module2.py /tests __init__.py test1.py test2.py 我的setup.py如下所示: #!/usr/bin/env python from setuptools import setup, find_packages setup(version='0.1', description='Trend following library', author='Nate Reed', author_email='nate@natereed.com', packages=find_packages(), install_requires=['numpy'], test_suite="tests", ) 当我运行“python setup.py test”时,我得到: nate@nate-desktop:~/PycharmProjects/trendfollowing$ sudo python setup.py test running test running egg_info writing requirements to UNKNOWN.egg-info/requires.txt writing UNKNOWN.egg-info/PKG-INFO writing top-level names to […]
我使用setuptools来分发我的python包。 现在我需要分发额外的数据文件。 从我从setuptools文档中得到的信息,我需要将我的数据文件放在软件包目录中。 不过,我宁愿将我的数据文件放在根目录的子目录中。 我想避免的是: / #root |- src/ | |- mypackage/ | | |- data/ | | | |- resource1 | | | |- […] | | |- __init__.py | | |- […] |- setup.py 我想代之以: / #root |- data/ | |- resource1 | |- […] |- src/ | |- mypackage/ | | |- […]
有什么重大的区别 pip install -e /path/to/mypackage 和setuptools变种? python /path/to/mypackage/setup.py develop
有人可以解释egg-info目录是如何绑定到他们各自的模块? 例如,我有以下几点: /usr/local/lib/python2.5/site-packages/quodlibet/ /usr/local/lib/python2.5/site-packages/quodlibet-2.0.egg-info/ 我假设egg-info目录是使相应的模块可见setuptools(easy_install),对不对? 如果是这样,setuptools如何将egg-info目录绑定到模块目录? 假设我在正确的轨道上,并为了举例…如果我想使现有的套件可见setuptools,我可以符号链接模块目录和egg-info目录到站点 – 软件包目录? 我会自己尝试这个,但我不知道如何testing包是否可见setuptools。 奖金积分,如果你也可以告诉我如何testing这:) 我试图理解这一切的主要原因是因为我想将我的一些模块符号链接到站点包,以便我可以对其进行更改,并使用它们的脚本可以看到更改,而无需重新安装每次改变后从PyPI中取卵。
您好我正在尝试python包装使用setuptools和testing我安装在开发模式的模块。 即 python setup.py develop 这已经将我的模块目录添加到sys.path。 现在我想删除模块有没有办法做到这一点? 提前致谢
这可能听起来像一个愚蠢的问题,因为virtualenv目的就是:在虚拟环境中安装某个特定版本的包(在本例中为Django)。 但这正是我想要做的,我无法弄清楚。 我在Windows XP上,我成功地创build了虚拟环境,并且能够运行它,但我该如何安装我想要的Django版本? 我的意思是,我知道使用新创build的easy_install脚本,但是如何使它安装Django 1.0.7? 如果我做easy_install django ,它会安装最新版本。 我试图以各种方式将版本号1.0.7放入此命令,但没有任何工作。 我该怎么做呢?
自从从Homebrew Python 2.7.11(从2.7.10)更新以来,我突然无法testing从PyCharm IDE控制台在PyPi上注册我的软件包。 运行(作为“外部工具”) python -B setup.py register -r pypitest 我现在得到 Traceback (most recent call last): File "setup.py", line 22, in <module> from setuptools import setup File "/usr/local/lib/python2.7/site-packages/setuptools/__init__.py", line 12, in <module> from setuptools.extension import Extension File "/usr/local/lib/python2.7/site-packages/setuptools/extension.py", line 8, in <module> from .dist import _get_unpatched File "/usr/local/lib/python2.7/site-packages/setuptools/dist.py", line 16, in <module> from setuptools.depends […]