问题标签 [setuptools]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2765 浏览

python - 如何让 easy_install 在 setup.py 中执行自定义命令?

除了安装 Python 包(如安装 init.d 脚本、创建目录和文件等)之外,我还希望 setup.py 执行一些自定义操作。我知道我可以自定义 distutils/setuptools 类来执行我自己的操作。我遇到的问题是,当我 cd 到包目录并执行“python setup.py install”时,一切正常,但是当我执行“easy_install mypackage.tar.gz”时,我的自定义类似乎没有被执行。这是我的 setup.py 文件(在同一目录中创建一个空的 myfoobar.py 文件进行测试):

即使我从 distutils 导入“设置”和“安装”,也会发生同样的事情。有什么想法可以让 easy_install 执行我的自定义类吗?

澄清一下,我不想使用任何额外的东西,比如 Buildout 或 Paver。

0 投票
4 回答
24442 浏览

python - 如何安装设置工具?

我正在尝试安装 setuptools。当我运行“sh setuptools-0.6c9-py2.4.egg”时,我收到以下消息:

权限被拒绝:'/usr/lib/python2.4/site-packages/test-easy-install-26338.write-test'

这是可以预料的,因为我没有系统的 root 权限。我是如何想到创建“虚拟”Python 的。

我下载“virtual-python.py”并使用站点范围的 Python 运行它。它在我的主目录中创建“lib”、“bin”和“include”子目录。在“virtual-python.py”的输出末尾,我看到以下消息:

您现在可以下载 ez_setup.py,然后运行 ​​/home/myname/bin/python ez_setup.py

我下载这个文件并运行它。但是我得到了同样的错误信息:

权限被拒绝:'/usr/lib/python2.4/site-packages/test-easy-install-925.write-test'

好的。我使用“前缀”强制 ez_setup.py 写入本地目录:

然后我得到:


  • 您可以使用此处描述的方法之一设置安装目录以支持“.pth”文件:

http://peak.telecommunity.com/EasyInstall.html#custom-installation-locations

所以,我被重定向到我之前读过的同一页面。所以,我不知道现在该怎么办。

我还有另一个提示:

  • 您可以将安装目录添加到 PYTHONPATH 环境变量中。(当你运行 Python 并想要使用你正在安装的包时,它也必须在 PYTHONPATH 上。)

但如果我输入:

我仍然得到相同的结果,就好像 Python 没有看到我的环境变量一样。

任何人都可以,请,帮助我吗?

0 投票
1 回答
423 浏览

python - 无法让 django-registration 工作(在 Windows 上)

试图将django-registration添加到我的应用程序中。我已经安装了安装工具来使用easy_install。我认为这行得通..

我运行 easy_install django-registation 并且 cmd 提示窗口闪烁,执行某些操作并关闭。我不认为这是一个错误。但是当我查看我的应用程序文件夹时,与 django-registration 没有任何关系。

有谁知道出了什么问题?django-registration 文件应该出现在哪里?

(也用 django-profiles 试过,结果完全一样)

0 投票
2 回答
1251 浏览

python - 哪个是最 Pythonic:通过包管理器(macports、apt)或通过 pip/easy_install/setuptools 安装 python 模块

通常我倾向于通过包管理器安装东西,用于 unixy 的东西。然而,当我编写了很多 perl 时,我会使用 CPAN、更新版本等等。

一般来说,我曾经通过包管理器安装系统的东西,通过它自己的包管理器(gem/easy_install|pip/cpan)安装语言的东西

现在主要使用python,我想知道最佳实践是什么?

0 投票
7 回答
12688 浏览

python - “setup.py 上传”失败并显示“上传失败 (401):您必须被识别才能编辑包信息”

跑步时..

..我得到以下输出:

它提示保存登录详细信息,尽管~/.pypirc已经包含此信息。然后它无法为我拥有的包上传文件,并且具有完全的写入权限。

0 投票
3 回答
2154 浏览

python - easy_install -f 与 easy_install -i

这与我不久前问的这个问题有关。

最终的结果是我希望能够安装我的包“identity.model”和所有依赖项。像这样...

无论出于何种原因,运行此 easy_install 都会访问我根据此信息布置的主页

我的 index.html

如果我跑...

它确实找到了我的包和我放在那里的 repoze.what.plugins.config,因为它是一个依赖项。但是,当它去获取 tw.forms(托管在 pypi 上的外部依赖项)时,它以失败告终,因为它只搜索了http://eggs.sadphaeton.com

显然我误解了“规范”。有人知道诀窍是什么吗?

0 投票
6 回答
1621 浏览

python - 如果没有安装 setuptools 怎么办?

我只是在学习setup.py为我的项目编写文件的艺术。我看到有很多关于 的讨论setuptools,这应该优于 distutils。虽然有一件事我不明白,而且我没有在我读过的任何教程中看到它:如果 setuptools 没有安装怎么办?我知道它不是标准库的一部分,所以你怎么能假设想要安装你的程序的人会安装它呢?

0 投票
1 回答
1560 浏览

python - Python 应用分发跨平台

我想在 OSX 上(使用 py2app)和 Debian 包分发我的应用程序。

我的应用程序的结构如下:

我的 setup.py 看起来像:

然后,在 b.py (这是在 OSX 上):

我得到:

所以基本上,mod2 无法访问 mod1。在 Linux 上没有问题,因为 python 模块 'app' 全局安装在 /usr/shared/pyshared 中。但在 OSX 上,该应用程序显然是由 py2app 构建的独立 .app 东西。我想知道我是否完全错误地处理了这个问题,在 OSX 上分发 Python 应用程序时是否有任何最佳实践?

编辑:我也在 b.py 中尝试过这样的 hack:

Edit2:似乎与这个如何在 Python 中进行相对导入有关?

0 投票
1 回答
10540 浏览

python - 使用 setuptools/distribute 打包资源

我正在开发一个 Python egg,它有几个 .txt 依赖项(它们是由 egg 本身生成文件的模板),我正在努力将这些依赖项复制到 .txt 文件site-packagessetup.py install。根据distribute文档...

我的包的文件系统:

在 setup.py 中:

在我的包裹中:

...配置和文件系统的这种组合应该导致file1.txt并且file2.txt可以通过pkg_resources.resource_string. 不幸的是,它们没有被复制到site-packages. setup.py install我错过了什么?

谢谢!

0 投票
2 回答
415 浏览

python - 使用 Distribute 包含包数据

我正在尝试将 Distribute 用于我的项目的setup.py. 我希望它包含包文件夹中的所有文件,它们是文本和图像文件,但当然不是 .pyc 文件。我读到文件应该由 CVS 和 SVN 跟踪,或者应该有一个MAINFEST.in.

所以:

  1. 我既不使用 CVS 也不使用 SVN,我使用 git。我知道可以为 git 写一个插件,也许有人有,但我不会使用一些我不知道它是否会被维护和支持的插件。此外,git 跟踪的不仅仅是源文件夹,repo 还包括其他不应打包在分发中的文件。

  2. 我认为 Distribute 的好处之一是不必处理MANIFEST.in文件。我真的必须吗?如果是这样,我在哪里可以看到指南?我从来没有写过MANIFEST.in.

有没有更好的解决方案?