小记内网环境创建python虚拟环境的方法
最近要做个桌面端程序设计,因我司在内网环境,想用Electron
太麻烦,准备用PyQt
试试。
在公司电脑装好了Anaconda以后,执行conda create -n py
来新创建一个python的虚拟环境却出了错。
发现conda create
的时候要连conda官网即使用清华镜像也是外网的,与我司内网原有的python源是pypi的。
此时,经过搜索,发现了三种解决方法:
- 使用python包virtualenv
- 在内网搭建一个源
- 离线安装
第三种治标不治本,第二种所需空间太大,故放弃。
但是第一种可以复用我司内网原有的pypi源,因此采取第一种方法。
但是在这里踩了一个坑:
我司的镜像是基于nexus的,在需要复制地址的时候,弹窗出来的地址是形如http://ip_address:port/nexus3/repository/pypi-public/
的,在按照网络教程执行如下指令配置内网源,
pip config set global.index-url http://ip_address:port/nexus3/repository/pypi-public/
然后执行命令pip install virtualenv
后报错无法找到该包。
经过摸索后,发现改错了,只能够再次修改,打开文件夹C:\Users\{用户名}\AppData\Roaming\pip
修改pip.ini
(linux地址~/.pip/pip.conf
)
[global]
trusted-host = {内网源ip地址或域名}
index = http://ip_address:port/nexus3/repository/pypi-public/pypi
index-url = http://ip_address:port/nexus3/repository/pypi-public/simple
再次执行命令pip install virtualenv
后成功安装。
在上方的配置文件中,trusted_host
项的配置是由于如果不加上这项pip install
的时候会报warning,说当前站点用http不是https不安全还是啥的吧啦吧啦....
在安装好了该包以后,进入一个要拿来创建虚拟环境的目录,我选择了Anaconda目录下的envs文件夹。
在当前目录下执行virtualenv pyenv1
,等执行完毕后,原地已经多了一个pyenv1
文件夹。
理论上来说,执行到pyenv1\Scripts
目录下activate
已经可以激活虚拟环境了。
但是在这里我又踩了一个坑...
由于在Windows里面我把Anaconda安装目录下的Scripts
文件夹也加到了环境变量之中,因此当我执行到了pyenv1\Scripts
目录下执行activate
的时候完全没反应。刚开始以为是指令不对,但是看了很多教程也没看出来是什么错误...
后来发现是因为执行了环境变量里面的activate
,执行./actvate
后成功把环境切到了pyenv1
执行deactivate
可以退出虚拟环境。
ps:是否处于虚拟环境中的标志可参考命令行中左侧有没有一个(your_env_name)
。
转载自:https://juejin.cn/post/7028397064216117256