解决virtualenv -p python3 venv报错的问题
在阿里云服务器上,用virtualenv创建虚拟环境时,报了个错误
root@izwz982qla1uxm1s5dnyo7z:/usr/lib/python3/dist-packages/virtualenv-15.0.1.egg-info# virtualenv -p python3 venv running virtualenv with interpreter /usr/bin/python2 new python executable in /usr/lib/python3/dist-packages/virtualenv-15.0.1.egg-info/venv/bin/python2 not overwriting existing python script /usr/lib/python3/dist-packages/virtualenv-15.0.1.egg-info/venv/bin/python (you must use /usr/lib/python3/dist-packages/virtualenv-15.0.1.egg-info/venv/bin/python2) please make sure you remove any previous custom paths from your /root/.pydistutils.cfg file. 1 [global] installing setuptools, pkg_resources, pip, wheel... complete output from command /usr/lib/python3/dis...nfo/venv/bin/python2 - setuptools pkg_resources pip wheel: collecting setuptools downloading http://mirrors.aliyun.com/pypi/packages/ff/f4/385715ccc461885f3cedf57a41ae3c12b5fec3f35cce4c8706b1a112a133/setuptools-40.0.0-py2.py3-none-any.whl (567kb) collecting pkg_resources exception: traceback (most recent call last): file "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/basecommand.py", line 209, in main status = self.run(options, args) file "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/commands/install.py", line 328, in run wb.build(autobuilding=true) file "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/wheel.py", line 748, in build self.requirement_set.prepare_files(self.finder) file "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/req/req_set.py", line 360, in prepare_files ignore_dependencies=self.ignore_dependencies)) file "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/req/req_set.py", line 512, in _prepare_file finder, self.upgrade, require_hashes) file "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/req/req_install.py", line 273, in populate_link self.link = finder.find_requirement(self, upgrade) file "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/index.py", line 442, in find_requirement all_candidates = self.find_all_candidates(req.name) file "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/index.py", line 400, in find_all_candidates for page in self._get_pages(url_locations, project_name): file "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/index.py", line 545, in _get_pages page = self._get_page(location) file "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/index.py", line 648, in _get_page return htmlpage.get_page(link, session=self.session) file "/usr/share/python-wheels/pip-8.1.1-py2.py3-none-any.whl/pip/index.py", line 760, in get_page resp.raise_for_status() file "/usr/lib/python3/dist-packages/virtualenv-15.0.1.egg-info/venv/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/models.py", line 840, in raise_for_status raise httperror(http_error_msg, response=self) httperror: 404 client error: not found for url: http://mirrors.aliyun.com/pypi/simple/pkg-resources/ ---------------------------------------- ...installing setuptools, pkg_resources, pip, wheel...done. traceback (most recent call last): file "/usr/lib/python3/dist-packages/virtualenv.py", line 2363, in <module> main() file "/usr/lib/python3/dist-packages/virtualenv.py", line 719, in main symlink=options.symlink) file "/usr/lib/python3/dist-packages/virtualenv.py", line 988, in create_environment download=download, file "/usr/lib/python3/dist-packages/virtualenv.py", line 918, in install_wheel call_subprocess(cmd, show_stdout=false, extra_env=env, stdin=script) file "/usr/lib/python3/dist-packages/virtualenv.py", line 812, in call_subprocess % (cmd_desc, proc.returncode)) oserror: command /usr/lib/python3/dis...nfo/venv/bin/python2 - setuptools pkg_resources pip wheel failed with error code 2
看到httperror: 404 client error: not found for url: http://mirrors.aliyun.com/pypi/simple/pkg-resources/以为是阿里云的安全组配置没配好,折腾了半天,原来是访问pypi镜像源出了问题,将pip的默认的源地址改为国内源即可。
具体操作如下:
vim ~/.pip/pip.conf打开pip配置文件:
写入
[global] index-url = http://e.pypi.python.org/simple
以下这几个国内源都可以
e.pypi.python.org
pypi.douban.com
pypi.hustunique.com
补充:使用virtualenv创建python3.7虚拟环境时报错modulenotfounderror: no module named '_ctypes'的解决方法
使用virtualenv创建python3.7.6版本虚拟环境时,遇到了标题中的报错,记录一下解决过程。
出现这种情况一般是因为缺少依赖包libffi-devel
在安装3.7以上版本时,需要一个新的libffi-devel包做依赖
使用yum安装依赖
yum install libffi-devel -y
删除之前安装的报错的虚拟环境目录
rm -f venv
重新编译安装系统python3.7.6(需要先找到安装时的python源码包,cd到目录中)
./configure --prefix=/usr/local/python3 make && make install
删除之前建立的软连接
rm -rf /usr/bin/python3 rm -rf /usr/bin/pip3
重新建立软连接
ln -s /usr/local/python3/bin/python3.7 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip3
到此python3重新安装完成,可以用python3、pip3命令测试一下是否安装成功。
进入虚拟目录将要存放的目录,使用新安装的python3创建虚拟环境。此处需要使用-p参数指定python版本路径,否则默认创建python2的环境。
virtualenv -p /usr/bin/python3 venv
测试进入创建好的虚拟环境中
source venv/bin/activate
退出环境
deactivate
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
上一篇: 软考之路--系统架构师真题分析
下一篇: 2014年12月31号
推荐阅读
-
解决python3中自定义wsgi函数,make_server函数报错的问题
-
解决python3 安装完Pycurl在import pycurl时报错的问题
-
解决python3运行selenium下HTMLTestRunner报错的问题
-
解决python3 Pycharm上连接数据库时报错的问题
-
解决python3 安装完Pycurl在import pycurl时报错的问题
-
解决python3中自定义wsgi函数,make_server函数报错的问题
-
解决python3运行selenium下HTMLTestRunner报错的问题
-
解决virtualenv -p python3 venv报错的问题
-
解决python3 Pycharm上连接数据库时报错的问题