要换电脑换平台系统要重装吗了,装了很多扩展包,重装很费劲,python扩展包直接覆盖根目录C:\Python27\Lib\site-packages行吗

&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!如果您查看本文后有所收获,欢迎您永久收藏到自己的账号中,同时也欢迎您分享给您的朋友
(Ctrl+Enter提交) &&
已有0人在此发表见解
&在& 14:14收藏到了
版权所有,转载本站文章还请保留本站文章或作者地址。 &&
· 蜀ICP备号-1
点击名称选择存放文件夹下次自动登录
现在的位置:
& 综合 & 正文
使用国内镜像通过pip安装python的一些包
学习flask,安装virtualenv环境,这些带都ok,但是一安装包总是出错无法安装,
比如这样超时的问题:
(env)user@orz:~/flask_study/venv-test/test$ easy_install Flask-SQLAlchemy
Searching for Flask-SQLAlchemy
Reading http://pypi.python.org/simple/Flask-SQLAlchemy/
Best match: Flask-SQLAlchemy 1.0
Downloading https://pypi.python.org/packages/source/F/Flask-SQLAlchemy/Flask-SQLAlchemy-1.0.tar.gz#md5=dca034849ffcbaef7b848ef
Processing Flask-SQLAlchemy-1.0.tar.gz
Running Flask-SQLAlchemy-1.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-lQ6xtl/Flask-SQLAlchemy-1.0/egg-dist-tmp-ZojgvG
warning: no previously-included files matching '*.pyc' found under directory 'docs'
warning: no previously-included files matching '*.pyo' found under directory 'docs'
no previously-included directories found matching 'docs/_build'
no previously-included directories found matching 'docs/_themes/.git'
Adding Flask-SQLAlchemy 1.0 to easy-install.pth file
Installed /home/zt/flask_study/venv-test/test/env/lib/python2.7/site-packages/Flask_SQLAlchemy-1.0-py2.7.egg
Processing dependencies for Flask-SQLAlchemy
Searching for SQLAlchemy
Reading http://pypi.python.org/simple/SQLAlchemy/
Download error on http://pypi.python.org/simple/SQLAlchemy/: _ssl.c:489: The handshake operation timed out -- Some packages may not be found!
Reading http://pypi.python.org/simple/SQLAlchemy/
Best match: SQLAlchemy 0.8.2
Downloading https://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-0.8.2.tar.gz#md5=5a33fb43dea93468dbb2a
error: Download error for https://pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-0.8.2.tar.gz: _ssl.c:489: The handshake operation timed out
或者这种:
(env)user@orz:~/flask_study/venv-test/test$ pip install flask
Downloading/unpacking flask
Could not find any downloads that satisfy the requirement flask
No distributions at all found for flask
Storing complete log in /home/user/.pip/pip.log
Downloading/unpacking flask
Cannot fetch index base URL http://pypi.python.org/simple/
Downloading/unpacking Jinja2&=2.4 (from flask)
Error The read operation timed out while getting https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.1.tar.gz#md5=282aed153e69f970d6e76f78ed9d027a (from https://pypi.python.org/simple/Jinja2/)
Exception:
Traceback (most recent call last):
File "/home/user/flask_study/venv-test/test/env/local/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 104, in main
status = self.run(options, args)
File "/home/user/flask_study/venv-test/test/env/local/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/commands/install.py", line 245, in run
requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
File "/home/user/flask_study/venv-test/test/env/local/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/req.py", line 985, in prepare_files
self.unpack_url(url, location, self.is_download)
File "/home/user/flask_study/venv-test/test/env/local/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/req.py", line 1109, in unpack_url
retval = unpack_http_url(link, location, self.download_cache, self.download_dir)
File "/home/user/flask_study/venv-test/test/env/local/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/download.py", line 431, in unpack_http_url
resp = _get_response_from_url(target_url, link)
File "/home/user/flask_study/venv-test/test/env/local/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/download.py", line 466, in _get_response_from_url
resp = urlopen(target_url)
File "/home/user/flask_study/venv-test/test/env/local/lib/python2.7/site-packages/pip-1.1-py2.7.egg/pip/download.py", line 85, in __call__
response = urllib2.urlopen(self.get_request(url))
File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 401, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 419, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 379, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1219, in https_open
return self.do_open(httplib.HTTPSConnection, req)
File "/usr/lib/python2.7/urllib2.py", line 1184, in do_open
r = h.getresponse(buffering=True)
File "/usr/lib/python2.7/httplib.py", line 1034, in getresponse
response.begin()
File "/usr/lib/python2.7/httplib.py", line 407, in begin
version, status, reason = self._read_status()
File "/usr/lib/python2.7/httplib.py", line 365, in _read_status
line = self.fp.readline()
File "/usr/lib/python2.7/socket.py", line 447, in readline
data = self._sock.recv(self._rbufsize)
File "/usr/lib/python2.7/ssl.py", line 241, in recv
return self.read(buflen)
File "/usr/lib/python2.7/ssl.py", line 160, in read
return self._sslobj.read(len)
SSLError: The read operation timed out
Storing complete log in /home/user/.pip/pip.log
为什么总是失败?自己操作老标准了,这么简单的几个小步骤还老是出错,不由得让我怀疑是否是撞墙了,可是又懒得买vpn去翻~~一墙,
无法代理又无法翻~~一墙,被逼着想到了使用镜像的方法了,一些公共的网站在国内总有一些镜像,使用这些镜像地址来安装就可以了
有了目的性搜索很快就搜索到了,
这个就是官网了,清华大学提供的
建议非清华大学校内的使用这个镜像: http://e.pypi.python.org/simple(这也是一个/simple),清华校内的就使用这个:http://mirrors.tuna./pypi/simple
使用镜像的方法可以在每次执行pip的时候加上参数"-i http://e.pypi.python.org/simple"即可,
或者也可以在本地配置,这样就不用每次都加上参数了,应用Cheer Xiao的配置():
使用pip的用户可以如下配置:
在unix和macos,配置文件为:$HOME/.pip/pip.conf
在windows上,配置文件为:%HOME%\pip\pip.ini
需要在配置文件内加上:
index-url=http://mirrors.tuna./pypi/simple
还有一个小技巧,就是把所有要安装的包写在一个文件里面,比如requirement.txt(每个包写一行,顶行头写),然后pip安装的时候只需要加参数“-r
requirement.txt”即可。
安装好之后体验了一把,速度飕飕的,感觉就一个字:爽~~
使用步骤:
1.进入目录下使用命令:virtualenv env
2.source env/bin/activate,这时候你会发现命令行前面会多出个(env)标识,这表明你已经进入了虚拟环境了。
写个简单的hello.py验证:
#!/usr/bin/python
from flask import Flask
app = Flask(__name__)
@app.route('/', methods = ['GET', 'POST'])
def hello():
return 'Hello world!'
if __name__ == '__main__':
提示没有flask包,使用上面的方法pip之,pip install
-i http://e.pypi.python.org/simple
flask,速度超快,安装之,运行,OK。
解惑:为什么这样安装酒OK了?而且不会对系统的原有的包造成影响?
查看env目录下的内容,发现在env/lib/pythonX.X/site-packages目录下有这些安装的包,比如我的下面有这些:
distribute-0.6.24-py2.7.egg
itsdangerous-0.23-py2.7.egg-info
Jinja2-2.7.1-py2.7.egg-info
setuptools.pth
easy-install.pth
itsdangerous.py
markupsafe
itsdangerous.pyc
MarkupSafe-0.18-py2.7.egg-info
Werkzeug-0.9.3-py2.7.egg-info
Flask-0.10.1-py2.7.egg-info
pip-1.1-py2.7.egg
这就是虚拟机的作用了。
终于可以安心的把精力集中到flask上了。
(决定以后每篇都先放一张搞笑的图,让自己乐呵一下)
直接安装flask会安装最新0.10的版本,很悲剧的是很多扩展包还没跟上此版本,所以很多功能没法用哦~~比如Falsk-Mail的版本
所以还是重新安装Flask的0.9版本,不过这也不是个事,有了envitualenv后环境非常容易,今天试了 -i http://e.pypi.python.org/simple竟然不行了 = =!,找到这个镜像地址不错/simple
哦,安装Flask0.9版本也很容易,直接pip install Flask==0.9即可。
&&&&推荐文章:
【上篇】【下篇】为Python安装第三方模块
转载请注明出处:
一、基本安装
Python Distribution Utilities(Distutils)在Python 2.0时引入,其极大地方便了对第三方模块的管理。通常,模块作者提供的模块可能会以不同的形式出现,这其中,最易于安装的莫过于操作系统上对应的安装包,如Windows上的exe或msi,以及基于RPM的Linux发行版(如Redhat/CentOS/SuSE等)上的rpm格式的包。然而,模块的最常见形式应该是源码包,如果其是使用Distutils遵循标准格式进行的封包,安装起来也很简单。在类Unix操作系统上,使用“python setup.py install”即可安装,在Windows系统上,只需要在“cmd”中执行“setup.py install”命令即可。
“setup.py install”的执行过程包含两个阶段:build和install。事实上,出于定制等目的,此两个阶段可以分别进行:首先执行“python setup.py build”进行编译,而后再执行“python setup.py install”进行安装。不过,此时的install阶段仍然会显示执行build的过程,虽然其并未执行任何多余的操作。
“python setup.py build”编译过程直接在源码目录下进行,如果想保持源码的整洁,也可以通过“python setup.py build --build-base=/path/to/pybuild”命令将编译的结果保存至额外指定的路径下。编译完成后,在目标路径下会用一个名为“lib”或“lib.&platform&”的目录来保存即将安装的模块文件,其中“lib”用于完全用python语言开发的模块,而“lib.&platform&”通常用于基于C/C++开发的模块。
“python setup.py install”实现的安装过程非常简单,其仅是将编译好的文件复制到指定的模块安装目录中。在未指定安装目录时,模块的安装目录为默认,其名称通常为“site-packages”,其具体位置可以在python环境中进行查看,例如在Windows系统上查看的如下所示的结果中的“C:\\Python27\\lib\\site-packages”。
&&& import sys
&&& sys.path
['', 'C:\\Windows\\system32\\python27.zip', 'C:\\Python27\\DLLs', 'C:\\Python27\\lib', 'C:\\Python27\\lib\\plat-win', 'C:\\Python27\\lib\\lib-tk', 'C:\\Python27', 'C:\\Python27\\lib\\site-packages']
CentOS 6.5 x86_64系统自带的python环境显示结果则要复杂一些,如下所示。
&&& sys.path
['', '/usr/lib64/python26.zip', '/usr/lib64/python2.6', '/usr/lib64/python2.6/plat-linux2', '/usr/lib64/python2.6/lib-tk', '/usr/lib64/python2.6/lib-old', '/usr/lib64/python2.6/lib-dynload', '/usr/lib64/python2.6/site-packages', '/usr/lib64/python2.6/site-packages/gtk-2.0', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info']
二、自定义安装
2.1 自定义模块的安装基准目录
实践中,将第三方模块安装在非默认目录下也是比较常见的需求,而Distutils的install命令为此也专门提供了相应的处理机制。
对于无法在全局site-packages目录写入文件的普通用户来说,可以为install命令指定“--user”选项将模块安装至用户家目录中相应的位置(类Unix系统通常为USER_BASE/lib/pythonX.Y/site-packages)。
如果出于仅以自用的目的想把模块安装至某特定路径下,可以为install命令指定“--home=&dir&”选项。不过,如果想让python使用此模块,需要为python解释器指定搜索路径,或通过编译sitecustomize来调用site.addsitedir(),也可以通过编辑sys.path的值来实现。
此外,常见于一些Linux发行版中,python会安装在/usr路径下,如果需要将第三方模块在安装于/usr/local而非默认的/usr路径下,则需要使用“--prefix”或“--exec-prefix”选项。其中,“--prefix”用于指定安装目录,而“--exec-prefix”用于指定平台特有的文件(例如C库)的安装目录,省略“--exec-prefix”时,其默认为“--prefix”指定的位置。查看当前系统python的默认prefix,可以通过如下方式进行。
&&& import sys
&&& sys.prefix
2.2 安装路径的深度定制
在安装第三方模块时,其会自动在安装基准目录中使用不同的目录来分别存储如python模块、扩展模块、可执行文件、数据及C头文件等几种不同类别的文件。如果需要对此些子目录进行定制,可以使用相应的选项进行:
python模块:--install-purelib=/path/to/somewhere
扩展模块:
--install-platlib=/path/to/somewhere
所有模块(即不区分python模块或扩展模块): --install-lib=/path/to/somewhere
可执行文件: --install-scripts=/path/to/somewhere
数据文件: --install-data=/path/to/somewhere
C头文件: --install-headers=/path/to/somewhere
这些路径可以使用相对路径或绝对路径。不过,使用--install-lib会覆盖--instal-purelib或--install-platlib指定的位置。例如下面的安装命令。
python setup.py install --home=~ \
--install-purelib=python/lib \
--install-platlib=python/lib.$PLAT \
--install-scripts=python/scripts
--install-data=python/data
如果需要为每一个安装的第三方模块都指定为特定的安装方案,也可以通过编辑Distutils的配置文件中[install]段的参数来统一定义,例如:
install-base=$HOME/python
install-purelib=lib
install-platlib=lib.$PLAT
install-scripts=scripts
install-data=data
参考文献:python官方文档
原文链接:/articles/QRJfMf
阅读: 222 |}

我要回帖

更多关于 电脑换平台系统要重装吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信