安装python虚拟环境
输入命令: virtualenv --no-site-packages /apid #如果没有其他依赖/环境/版本问题,直接运行就可建个新环境.
然后在原来的环境中生成requirements.txt,cp之后安装.
以下是我遭遇的问题,汇总如下:
----虚拟环境安装流程:
1.yum install epel-release -y
2.yum install -y python-pip
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
处理很简单,修改文件“/etc/yum.repos.d/epel.repo”, 将baseurl的注释取消, mirrorlist注释掉。再次运行即可。
3. 发现python的版本有两个,所以就删除软连接 rm python ,然后重新建
[root@master ~]# ln -s /usr/bin/python2.6 /usr/bin/python
4. pip install virtualenv #安装 virtualenv
5. virtualenv --no-site-packages /apid # 我新建的目录为: /apid
5.1 报错如下(原因是2.7以下的版本出现问题,我的是2.6.6)
ValueError: zero length field name in format
5.2 安装2.7版本的python,之后报错
Traceback (most recent call last):
File "/usr/bin/virtualenv", line 7, in <module>
from virtualenv import main
ImportError: No module named virtualenv
解决办法: yum remove python-pip , 然后 yum install -y python-pip ,
运行 pip install virtualenv 出现报错:ImportError: No module named pkg_resources
解决办法: 使用如下方式安装: yum install python-virtualenv
然后重新运行 virtualenv --no-site-packages /apid
-----给系统安装新的python
1.下载、编译和安装 Python 2.7.13
wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
tar zxf Python-2.7.13.tgz
cd Python-2.7.13
./configure
make && make install #默认安装在 /usr/local/bin/python
2.删除原来的 /usr/bin/python 软连接,然后建立新的连接
ln -s /usr/local/bin/python /usr/bin/python
ln -s /usr/local/bin/python-config /usr/bin/python-config
ln -s /usr/local/include/python2.7/ /usr/include/python2.7
-----给虚拟环境安装新的依赖
1. 先在原来的机器上生成依赖安装包
pip freeze > requirements.txt
2. sudo pip install -r requirements.txt #这个是错误的,需要制定pip的环境
上边的安装全安装在了/apid/build/目录下,pip list 没有.所以需要指定pip的路径,需要删除后重新安装
3. sudo /Application/apid/bin/pip install greenlet==0.4.12 #这个正确安装一个单独依赖的操作
-----安装百度云sdk的时候出错: sudo /apid/bin/python setup.py install
python ImportError: No module named builtins
解决方案: sudo pip install future 然后再按照上述的操作(在百度云的官方文档里有)
-----IOError: [Errno 13] Permission denied: '/Application/apid/build/chardet/chardet/__init__.py'
解决办法: 修改虚拟环境中目录权限 chown fff:fff apid -R