利用virtualenv搭建本地python venv环境,隔离anaconda + pyinstaller安装方法

文章目录

    • 背景
    • 问题
    • 步骤
        • 确认是否安装 virtualenv
        • 安装 virtualenv
        • pip install virtualenv 失败解决
        • 创建一个venv python环境
        • 启动新环境
        • pyinstaller安装方法
        • 注意事项

背景

  • anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 [1] 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB);
  • pycharm可以直接使用anaconda作为解析器环境

问题

  • 有时我们需要开发维护多个项目,使用的python版本和包各不相同
  • 或者我们需要使用pyinstaller打包win程序,避免打包出来的程序过大(超300Mb)
  • 为了解决这个问题 pyinstaller打包失败和包exe太大
  • 这个时候,最好的版本就是新建一个纯净的python venv环境

步骤

确认是否安装 virtualenv

打开cmd窗口,输入 virtualenv -h 确认现有环境是否有 virtualenv,有则显示如下,没有则安装 virtualenv

C:\Users\wangshengke>virtualenv -h
Usage: virtualenv [OPTIONS] DEST_DIR

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -v, --verbose         Increase verbosity.
                   。。。。。。

安装 virtualenv

  1. pip install virtualenv(pip如果都没有,网上去找,不多介绍)

pip install virtualenv 失败解决

  1. 如果出现超时或其他原因安装失败的,可以手动根据地址 用浏览器 下载安装包;然后pip install virtualenv-16.4.3-py2.py3-none-any.whl 即可
    D:\pyvenv_a>pip install virtualenv
    Collecting virtualenv
      Downloading https://files.pythonhosted.org/packages/33/5d/314c760d4204f64e4a968275182b7751bd5c3249094757b39ba987dcfb5a/virtualenv-16.4.3-py2.py3-none-any.whl (2.0MB)
  1. 也可以使用国内的镜像服务器,避免国外服务器超时
    例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv,这样就会从清华这边的镜像去安装virtualenv库

创建一个venv python环境

  1. 根据个人嗜好,在对应目录创建,先要cd到对应目录,例如我是在d:\pyenv_a文件夹下创建虚拟环境的;
  2. 调用 virtualenv --no-site-packages venv 自动创建一个venv python环境目录
  3. –no-site-packages 意思是不使用全局的site-packages包,防止anaconda的包继承过来污染
D:\pyvenv_a> virtualenv --no-site-packages venv
Using base prefix 'F:\\Program_File\\anaconda3'
New python executable in D:\pyvenv_a\venv\Scripts\python.exe
copying F:\Program_File\anaconda3\python.exe => D:\pyvenv_a\venv\Scripts\python.exe
Installing setuptools, pip, wheel...done.

D:\pyvenv_a>

启动新环境

  1. cd 到 D:\pyvenv_a>cd venv\Scripts 下,调用activate即可启用新环境变量,cmd命令前会出现个(venv),标示切换成功

D:\pyvenv_a>cd venv\Scripts\

D:\pyvenv_a\venv\Scripts>activate

(venv) D:\pyvenv_a\venv\Scripts>

pyinstaller安装方法

  1. 由于我新建环境是为pyinstaller打包 exe做准备,所有也附上pyinstaller安装方法
  2. 直接调用 pip install pyinstaller 出现超时 socket.timeout: The read operation timed out
(venv) D:\pyvenv_a>pip install pyinstaller
Collecting pyinstaller
  Downloading https://files.pythonhosted.org/packages/03/32/0e0de593f129bf1d1e77eed562496d154ef4460fd5cecfd78612ef39a0cc/PyInstaller-3.4.tar.gz (3.5MB)
Exception:

   v = self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

解决方案:
根据地址上述地址 手动下载 https://files.pythonhosted.org/packages/03/32/0e0de593f129bf1d1e77eed562496d154ef4460fd5cecfd78612ef39a0cc/PyInstaller-3.4.tar.gz
然后放到当前目录,调用pip install PyInstaller-3.4.tar.gz 安装
(venv) D:\pyvenv_a\venv>pip istall PyInstaller-3.4.tar.gz

注意事项

  1. 按照以上创建新环境后,如果要使用任何工具或包,都需要新安装,每次调用最好先用命令确认你是用的是不是新环境的工具、包
(venv) D:\pyvenv_a\venv>where pyinstaller
F:\Program_File\anaconda3\Scripts\pyinstaller.exe

(venv) D:\pyvenv_a\venv>
  1. 例如: 我没安装过 pyinstaller,如果直接调用,系统也没报错,而是把我引向了anaconda的安装下,导致我最终用的还是anaconda的环境,没有实现隔离,出现了各种问题
  2. 安装后,会变为如下多个本环境下的路径,则环境会优先使用自己下边的,不去找anaconda
(venv) D:\pyvenv_a\venv>where pyinstaller
D:\pyvenv_a\venv\Scripts\pyinstaller.exe
F:\Program_File\anaconda3\Scripts\pyinstaller.exe

(venv) D:\pyvenv_a\venv>

你可能感兴趣的:(python)