python在服务器上运行慢_皮皮很慢。如何运行自己的服务器?

博客讨论了Python包在服务器上安装慢的问题,特别是在使用Pip和大量依赖时。作者尝试了使用PyPI镜像来加速,但发现下载速度仍然很慢。文章探讨了运行自己的PyPI实例作为解决方案,但指出这需要下载整个PyPI内容,且不适用于有多个项目和不断变化的依赖的环境。最后,作者询问其他大型Python团队是如何快速安装相同组Python包的。
摘要由CSDN通过智能技术生成

当一个新的开发人员加入团队,或者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

data = self._sock.recv(left)

File "/usr/lib64/python2.6/httplib.py", line 538, in read

s = self.fp.read(amt)

File "/usr/lib64/python2.6/socket.py", line 353, in read

data = self._sock.recv(left)

timeout: timed out

我知道Pip的--use-mirrors标志,有时我的团队中的人通过使用--index-url http://f.pypi.python.org/simple(或另一个镜像)来工作,直到他们有一个及时响应的镜像。我们在英国,但德国有一个PyPI镜像,我们从其他网站下载数据没有问题。

所以,我正在为我们的团队寻找在内部镜像PyPI的方法。

我看到的选项是:运行我自己的PyPI实例。有正式的PyPI实现:CheeseShop以及几个第三方实现,如:djangopypi和pypiserver(见脚注)

这种方法的问题是,我对文件上传的完整PyPI功能不感兴趣,我只想镜像它提供的内容。

这看起来可以工作,但它需要我的镜像先从PyPI下载所有内容。我已经设置了一个pep381client的测试实例,但是我的下载速度在5kb/s到200kb/s(位,而不是字节)之间变化。除非某个地方有完整的PyPI档案的副本,否则我需要几个星期才能有一个有用的镜像。

这是不可扩展的:我们有几个不同的Python项目,它们的依赖关系随着时间的推移(缓慢)变化。任何项目的依赖项一旦更改,必须更新此中心文件夹以添加新的依赖项。不过,复制virtualenv比复制包更糟糕,因为任何带有C模块的Python包都需要为目标系统编译。我们的团队同时拥有Linux和OSX用户。

(这看起来仍然是坏货中的最佳选择。)

其他大型Python团队做什么?快速安装同一组python包的最佳解决方案是什么?

脚注:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值