程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

利用virtualenv搭建本地python venv環境,隔離anaconda + pyinstaller安裝方法

編輯:Python

文章目錄

    • 背景
    • 問題
    • 步驟
        • 確認是否安裝 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>

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved