我是Python的新手,我只是想了解它的包是如何工作的.据推测,"鸡蛋"是某种包装机制,但是它们可以快速概述它们扮演的角色,也可能是一些关于它们为什么有用以及如何创建它们的信息?
当一个新的开发人员加入团队,或者Jenkins运行完整的构建时,我需要创建一个新的virtualenv.我经常发现使用Pip和大量(超过10个)需求设置virtualenv需要很长时间才能从PyPI安装所有内容.通常它完全失败:
Downloading/unpacking Django==1.4.5 (from -r requirements.pip (line 1))
Exception:
Traceback (most recent call last):
File "/var/lib/jenkins/jobs/hermes-web/workspace/web/.venv/lib/python2.6/site-packages/pip-1.2.1-py2.6.egg/pip/basecommand.py", line 107, in main
status = self.run(options, args)
File "/var/lib/jenkins/jobs/hermes-web/workspace/web/.venv/lib/python2.6/site-packages/pip-1.2.1-py2.6.egg/pip/commands/install.py", line 256, in run
requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
File "/var/lib/jenkins/jobs/hermes-web/workspace/web/.venv/lib/python2.6/site-packages/pip-1.2.1-py2.6.egg/pip/req.py", line 1018, in prepare_files
self.unpack_url(url, location, self.is_download)
File "/var/lib/jenkins/jobs/hermes-web/workspace/web/.venv/lib/python2.6/site-packages/pip-1.2.1-py2.6.egg/pip/req.py", line 1142, in unpack_url
retval = unpack_http_url(link, location, self.download_cache, self.download_dir)
File "/var/lib/jenkins/jobs/hermes-web/workspace/web/.venv/lib/python2.6/site-packages/pip-1.2.1-py2.6.egg/pip/download.py", line 463, in unpack_http_url
download_hash = _download_url(resp, link, temp_location)
File "/var/lib/jenkins/jobs/hermes-web/workspace/web/.venv/lib/python2.6/site-packages/pip-1.2.1-py2.6.egg/pip/download.py", line 380, in _download_url
chunk = resp.read(4096)
File "/usr/lib64/python2.6/socket.py", line 353, in read …Run Code Online (Sandbox Code Playgroud) 我们有几个自己的python包,并希望使用简单的界面为他们创建本地pypi存储库,如https://pypi.python.org/simple/
由于安全原因,我想在没有任何镜像的情况下为本地创建此存储库,它将被置于apache的控制之下
命令pypimirror看起来必须初始化一次,需要镜像.
如何基于本地python包生成PyPi Simple Index.
还有其他任何简单的脚本吗?
我需要从头开始构建一个内部python包索引服务器.现在我们使用Python 2.6和2.7,并且更喜欢使用pip安装软件包.
我们不需要身份验证,但它会有所帮助.
在内部运行PyPi等效运算的最简单方法是什么?
我知道mypypi,djangopypi,Plone软件中心和EggBasket的存在,但我无法找到一套简单的步骤来在现代环境中设置其中一个; 我发现的最新完整文档似乎是Tarek Ziade 2008年关于它们的博客文章,但目前尚不清楚最新版本是什么(而且似乎引入了一个巨大的依赖树,引导).
tldr; 什么是最好的 PyPi实现,如何安装+配置?
PyPI可能不可靠.我有一个不幸的Travis-CI版本失败,因为pip无法安装我的一个要求(lxml是最臭名昭着的罪犯).
各种在线资源推荐--use-mirrors旗帜,到目前为止我已经解决了这个问题.但是,由于一些很好的理由而--use-mirrors被弃用.
不幸的是,正如链接中所提到的,删除标志的一个主要原因是新的CDN支持的PyPI不应该有相同的问题.确实如此.我的构建仍然存在问题,除非我使用,否则我仍然无法使用pip可靠地安装软件包--use-mirrors.
该发行说明发布1.5对2014年1月1日推荐使用标志之一-i,-index-url或--extra-index-url.这很好,除了......我们遇到了一些相同的问题--use-mirrors,即这些镜像不一定是可信任的.
该PyPI将镜子名单实际上已经被删除,留给我们一些非官方的镜子.因此,我有一个选择:继续使用--use-mirrors并希望上面的问题之一在被删除之前得到修复,或者选择一个镜子并希望它有效且值得信赖.
有广泛接受和信任的镜子吗?还是广泛接受和信任的替代方案?基本上,我该如何处理这个问题?
我想设置一个本地PyPi服务器,其中包含一组自定义的包及其所有依赖项.
我现在拥有的是一个包格式列表:
django==1.4.3
celery==3.0.12
uwsgi==1.2.6
pillow==1.7.7
...
Run Code Online (Sandbox Code Playgroud)
我想有一个本地PyPi服务器,可以提供所有这些鸡蛋及其依赖项.
我怎样才能做到这一点?
理想情况下,我想有一个工具,可以将requirements.txt文件作为输入,下载所有列出的包并将它们复制到本地pypi.
我用 python 制作了一些模块,我想在我的组织内部分发它们。这些模块已经存储在 BitBucket 中。
例如,有没有办法使用“pip install”来分发它们?
什么是正确的方法?
我的 python 包依赖于不在 pypi 中的私有包。你可以假设私有包的结构是这样的。
目标:以任何方式将 3rd 方私有包存储在我自己的包中的某个位置,以便在我运行时pip install -r requirements.txt(甚至更好pip install <my_pkg_name>)安装 3rd 方依赖项。这必须适用于 Windows 和 Linux。
一个潜在的解决方法:不要安装第 3 方模块。相反,将其按原样放置在主包目录import及其模块中。
/my_pkg
/non_pypi_pkg
/my_pkg
module.py
Run Code Online (Sandbox Code Playgroud)
哪里module.py可以import non_pypi_pkg不用安装non_pypi_pkg。
问题:实现目标的推荐做法是什么?我们可以做得比我的解决方法更好吗?