问题标签 [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.
python-3.x - python3.0上的setuptools
我试图为 python3.0 安装“setuptool”包。但不幸的是,当我尝试安装时,它说模块名称“dist”丢失。请帮我解决这个问题。
截至 2013 年 3 月的编辑:
请在接受的答案下方查看@LennartRegebro 的最新回复
python - setuptools 如何决定为 sdist/bdist 保留哪些文件?
我正在开发一个在 setup.py中使用namespace_packages
和类似的 Python 包:find_packages()
它不在源代码控制中,因为它是一组上游组件。没有清单。
当我运行时,python setup.py sdist
我得到了package/
目录下大多数文件的压缩包,但任何不包含.py
文件的目录都被排除在外。
setup.py
构建发行版中包含和排除的内容的默认规则是什么?我通过添加MANIFEST.in
with解决了我的问题
但我想了解 setuptools 和 distutils 默认在做什么。
python - 在 python 脚本中使用easy_install?
easy_install python 扩展允许从控制台安装 python 鸡蛋,例如:
但是是否可以在 python 脚本中访问 easy_install 功能?我的意思是,不调用 os.system("easy_install py2app") 而是将 easy_install 作为 python 模块导入并使用它的本机方法?
python - 使用 Python 以编程方式检测 Windows XP 上的系统代理设置
我开发了一个跨国公司使用的关键应用程序。全球各地办公室的用户都需要能够安装此应用程序。
该应用程序实际上是 Excel 的一个插件,我们有一个基于 Setuptools 的 easy_install 的自动安装程序,可确保在用户打开 Excel 时自动安装或更新所有项目的依赖项。这一切都非常优雅,因为用户很少意识到完全在后台发生的所有安装。
不幸的是,我们正在扩大和开设新的办公室,这些办公室都有不同的代理设置。这些设置似乎每天都在变化,所以我们无法跟上那些在不告诉我们的情况下改变东西的外包安全人员。这很糟糕,但我们只需要解决它。
我想以编程方式检测用户运行的 Windows 工作站上的系统范围代理设置:
组织中的每个人都运行 Windows XP 和 Internet Explorer。我已经验证每个人都可以毫无问题地从 IE 下载我们的东西,无论他们身在何处。
所以我需要做的就是检测 IE 正在使用哪些代理设置,并让 Setuptools 使用这些设置。理论上所有这些信息都应该在注册表中。但是有没有更好的方法来找到它,保证不会随着人们升级 IE 而改变?例如,是否有可用于发现代理设置的 Windows API 调用?
总之:
- 我们在 Windows XP 上使用 Python 2.4.4
- 我们需要检测 Internet Explorer 代理设置(例如主机、端口和代理类型)
- 我将使用这些信息动态地重新配置easy_install,以便它可以通过代理下载egg 文件。
更新0:
我忘记了一个重要的细节:每个站点都有一个自动配置的“pac”文件。
Windows\CurrentVersion\InternetSettings\AutoConfigURL 中有一个键,它指向本地服务器上的 HTTP 文档,其中包含看起来像 javascript 文件的内容。
pac 脚本基本上是一系列嵌套的 if 语句,它们将 URL 与正则表达式进行比较,然后最终返回所选代理服务器的主机名。该脚本是一个名为 FindProxyForURL(url, host) 的 JavaScript 函数
因此,挑战在于为任何给定的服务器找出要使用的代理。唯一 100% 保证的方法是查找 pac 文件并从 Python 调用 Javascript 函数。
有什么建议么?有没有更优雅的方法来做到这一点?
python - 如何让 setuptools 忽略颠覆清单?
当使用 setup.py 打包 Python 包时,使用 setuptools:
由以下人员创建的源分发:
不仅像往常一样包括在 MANIFEST.in 中指定的文件,而且还无偿地包括 Subversion 列出的所有文件,这些文件在包目录下被版本控制。这非常烦人。不仅难以对与我的包一起分发的文件进行任何形式的显式控制,而且这意味着当我按照“svn export”而不是“svn checkout”构建包时,我的内容包可能完全不同,因为没有 .svn 元数据 setuptools 将对包含的内容做出不同的选择。
我的问题:我如何才能关闭这种可怕的行为,以便“setuptools”以同样的方式对待我的项目,无论我使用的是 Subversion,还是从未听说过的版本控制,还是使用“svn export”创建的裸树,我'已经在我的项目结束时创建以确保它在我的工作目录之外的某个地方干净地构建?
到目前为止,我所管理的最好的是一个丑陋的猴子补丁:
但这是 Python,而不是丛林,所以我当然想要一个完全不涉及猴子的更好的解决方案。我怎样才能驯服 setuptools,关闭它的魔力,并通过查看 MANIFEST.py 中可见的、可预测的规则来让它表现得明智?
python - 如何使 easy_install 将包扩展到目录而不是单个 egg 文件?
我该如何配置我的 setup.py 文件,以便当有人运行 easy_install 时,包会扩展为 \site-packages\ 作为目录,而不是留在鸡蛋中。
我遇到的问题是我创建的其中一个 django 应用程序不会自动检测它是否位于鸡蛋内。
编辑:例如,如果我键入easy_install photologue
它只是将一个\photologue\
目录安装到站点包中。这是我想要的行为,但似乎为了实现这一点,被打包的目录中至少需要一个目录/模块。
python - python distutils / setuptools:如何排除模块,或尊重 svn:ignore 标志
我有一个 python 项目,“myproject”,它包含几个包。其中一个包“myproject.settings”包含一个模块“myproject.settings.local”,该模块通过“svn:ignore”属性从版本控制中排除。
我希望 setuptools 在制作 bdist 或 bdist_egg 目标时忽略此文件。
我已经尝试过 find_packages(exclude..) 无济于事。理想情况下,我希望只包含 svn 不会忽略的文件。
有没有办法实现对我的模块的排除?(我在 setuptools 主干的修补(http://bugs.python.org/setuptools/issue64)版本上,带有颠覆 1.6。)
感谢您提供的任何见解
-坦率
python - 在 setup.py 中使用 Unicode 元数据的正确方法是什么?
我正在使用 setuptools 为 Python 包编写 setup.py,并希望在 long_description 字段中包含一个非 ASCII 字符:
不幸的是,将 unicode 对象传递给 setup() 会使用 UnicodeEncodeError 破坏以下两个命令中的任何一个
如果我对 long_description 字段使用原始 UTF-8 字符串,则以下命令会因 UnicodeDecodeError 中断:
我通常通过运行“python setup.py sdist register upload”来发布软件,这意味着查看 sys.argv 并传递正确对象类型的丑陋黑客是正确的。
最后我放弃并实施了一个不同的丑陋黑客:
没有更好的方法吗?
python - 让 SetupTools/easy_install 知道已安装的 Debian 软件包?
我正在安装一个easy_install
需要ruledispatch
. 它在 PyPI 中不可用,当我使用 PEAK 的版本时,它是FTBFS。但是,有一个python-dispatch
包提供与 ruledispatch 相同的功能。我怎样才能easy_install
停止尝试安装 ruledispatch,并让它识别 ruledispatch 已经安装为 python-ruledispatch?
使用 Python 2.4 运行 Debian etch
python - Ubuntu + virtualenv = 一团糟?virtualenv 讨厌 dist-packages,想要 site-packages
有人可以向我解释一下 ubuntu 9.04 中的 python 发生了什么吗?
我正在尝试启动virtualenv
,并且该--no-site-packages
标志似乎对 ubuntu 没有任何作用。我安装virtualenv 1.3.3
了easy_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
空空如也的坐在那里。看起来(通过查看path
a virtualenv
)这是 virtualenv 用作备份的文件夹。因此,即使我省略了--no-site-packages
,我也无法从我的任何 virtualenv 访问我的本地系统包。
所以我的问题是:
- 我如何
virtualenv
指向其中之一dist-packages
? - 我应该指向哪些dist-packages?
/usr/lib/python2.6/dist-packages
或者/usr/local/lib/python2.6/dist-packages/
- 有什么意义
/usr/lib/python2.6/site-packages
?里面什么都没有! - 是先到先得吗?如果我安装了更新版本的包 XYZ
/usr/local/lib/python2.6/dist-packages/
和旧版本(来自 ubuntu repos/apt-get)/usr/lib/python2.6/dist-packages
,当我导入哪个包import xyz
?我假设这是基于路径列表的,是吗? - 为什么这会如此令人困惑?我在这里缺少什么吗?
easy_install
应该安装到哪里定义/usr/local/lib/python2.6/dist-packages
?- 这也会有影响
pip
吗?
感谢任何可以解决这个问题的人!