Anaconda3的Jupyter notebook切換Python3和Python2環境並調用Arcpy


1 運行 cmd 或 Anaconda Prompt

在任務欄 "開始" 中找到 Anaconda Prompt (Anaconda3),也可以直接使用 cmd(命令提示符)

考慮到anaconda的很多包是聯網下載,默認是從連接外國網站的,速度受限時,請添加源鏡像

2 創建 Python2 的虛擬環境

執行conda create -n 虛擬環境名 python=2.7創建虛擬環境


如果出現上面的結果(有任何反應),表示有創建環境存在問題,使用conda clean --all刪除上次創建時,安裝的緩存,重置anaconda環境,重新嘗試

3 Jupyter 配置 Python2 虛擬環境

(base) C:\User\lqq>表示我們在base環境中

執行activate Python2激活 Python2環境。

在 Python2 環境中,推薦使用pip安裝 ipykernel,雖然執行conda install ipykernel也可以安裝 ipykernel,但有時會出現 Jupyter 不能啟動 Python2 環境

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ipykernel

<img src=" https://img2020.cnblogs.com/blog/1995639/202004/1995639-20200408125120358-1356063677.png" style="width: 800px;>
在 Python2 環境中,使用pip安裝ipykernel,執行代碼如下:

執行python -m ipykernel install --user --name Python2 --display-name "Python 2"將Python2環境的kernel寫入Jupyter的kernel

目前,我們已經可以在Jupyter中看到Python2的環境

執行pip install autopep8,pip install ipywidgets,pip install widgetsnbextension,pip install tqdm可以安裝autopep8ipywidgetstqdm必備插件

使用jupyter nbextension enable --py widgetsnbextension將jupyter的插件與ipywidgets進行關聯

實現Python2環境,在jupyter中正常使用tqdm_notebook

注意!如果在Jupyter中不能正常運行Python2服務,可以將Python2環境的包升級到較高版本
在Python2環境中,執行pip install pipupgrade安裝pipupgrade包,pipupgrade包可以實現將已經安裝的python包集體升級

安裝pipupgrade包之后,執行pipupgrade --latest --yes,進行Python2環境的python包升級

也可以執行pipupgrade --verbose --latest --yes--verbose提供用戶對升級包的查看,紅色字體的包是不適合升級

4 導入 Arcpy

創建arcpy.pth文件,根據ArcGIS安裝路徑,在arcpy.pth文件中輸入內容:

C:\Python27\ArcGIS10.4
C:\Python27\ArcGIS10.4\libs
C:\Python27\ArcGIS10.4\Scripts
C:\Python27\ArcGIS10.4\Lib\site-packages
C:\Program Files (x86)\ArcGIS\Desktop10.4\bin
C:\Program Files (x86)\ArcGIS\Desktop10.4\arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.4\arcpy\arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.4\arcpy\arcpy\geoprocessing
C:\Program Files (x86)\ArcGIS\Desktop10.4\ArcToolbox\Scripts

注意:由於 ArcGIS 是 32位的,使用32位的 arcpy,需要創建32位的虛擬環境,在建立虛擬環境的時候,將 conda 設置為32位后,才能建立32位的虛擬環境,conda的設置代碼如下:

set CONDA_FORCE_32BIT=1
conda create -n arcgis-py32 python=2.7

如果安裝了ArcGIS Server,可以調用64位的arcpy,則arcpy.pth輸入內容為:

C:\Python27\ArcGISx6410.4
C:\Python27\ArcGISx6410.4\libs
C:\Python27\ArcGISx6410.4\Scripts
C:\Python27\ArcGISx6410.4\Lib\site-packages
C:\Program Files\ArcGIS\Server\bin
C:\Program Files\ArcGIS\Server\arcpy
C:\Program Files\ArcGIS\Server\arcpy\arcpy
C:\Program Files\ArcGIS\Server\arcpy\arcpy\geoprocessing
C:\Program Files\ArcGIS\Server\ArcToolbox\Scripts

如果安裝了ArcGIS Desktop Background Geoprocessing(64bit), 也可以調用64位的arcpy,則arcpy.pth內容為:

C:\Python27\ArcGISx6410.4
C:\Python27\ArcGISx6410.4\libs
C:\Python27\ArcGISx6410.4\Scripts
C:\Python27\ArcGISx6410.4\Lib\site-packages
C:\Program Files (x86)\ArcGIS\Desktop10.4\bin64
C:\Program Files (x86)\ArcGIS\Desktop10.4\arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.4\arcpy\arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.4\arcpy\arcpy\geoprocessing
C:\Program Files (x86)\ArcGIS\Desktop10.4\ArcToolbox\Scripts

執行conda env list查看 Python2環境的路徑

將arcpy.pth文件拷貝到C:\Users\lqq\Anaconda3\envs\Python2\Lib\site-packages路徑下

5 導出配置包

為了方便在其他電腦上配置Python2環境,在激活的虛擬環境中,執行pip list --format=freeze > D:/requirements.txt導出配置好的包

在其他電腦上激活Python2環境,執行pip install -r requirement.txt的路徑可以自動配置所需包

以下是本人的Python2環境最終配置的所有包

attrs==19.3.0
autopep8==1.5.3
backports-abc==0.5
backports.functools-lru-cache==1.6.1
backports.shutil-get-terminal-size==1.0.0
backports.shutil-which==3.5.2
bleach==3.1.5
certifi==2019.11.28
colorama==0.4.3
configparser==4.0.2
contextlib2==0.6.0.post1
decorator==4.4.2
defusedxml==0.6.0
entrypoints==0.3
enum34==1.1.10
functools32==3.2.3.post2
futures==3.3.0
GDAL==2.2.4
importlib-metadata==1.6.1
ipaddress==1.0.23
ipykernel==4.10.1
ipython==5.9.0
ipython-genutils==0.2.0
ipywidgets==7.5.1
Jinja2==2.11.2
joblib==0.14.1
jsonschema==3.2.0
jupyter==1.0.0
jupyter-client==5.3.4
jupyter-console==5.2.0
jupyter-contrib-core==0.3.3
jupyter-contrib-nbextensions==0.5.1
jupyter-core==4.6.3
jupyter-highlight-selected-word==0.2.0
jupyter-latex-envs==1.4.6
jupyter-nbextensions-configurator==0.4.1
lxml==4.5.1
MarkupSafe==1.1.1
mistune==0.8.4
nbconvert==5.6.1
nbformat==4.4.0
nose==1.3.7
notebook==5.7.9
numpy==1.16.6
packaging==20.4
pandas==0.24.2
pandocfilters==1.4.2
pathlib2==2.3.5
pickleshare==0.7.5
prometheus-client==0.8.0
prompt-toolkit==1.0.18
pycodestyle==2.6.0
Pygments==2.5.2
pyparsing==2.4.7
pyrsistent==0.16.0
python-dateutil==2.8.1
pytz==2020.1
pywin32==227
pywinpty==0.5.7
PyYAML==5.3.1
pyzmq==19.0.1
qtconsole==4.7.4
QtPy==1.9.0
scandir==1.10.0
Send2Trash==1.5.0
simplegeneric==0.8.1
singledispatch==3.4.0.3
six==1.15.0
sympy==0.7.6
terminado==0.8.3
testpath==0.4.4
toml==0.10.1
tornado==5.1.1
tqdm==4.46.1
traitlets==4.3.3
wcwidth==0.2.4
webencodings==0.5.1
widgetsnbextension==3.5.1
win-unicode-console==0.5
wincertstore==0.2
xlrd==0.9.3
zipp==1.2.0

6 虛擬環境備份和恢復

在Python2環境中,執行conda env export > C:\Users\lqq\Desktop\arcpy2.yml將Python2虛擬環境備份到arcpy2.yml文件中

之后可以在已經安裝了conda的電腦上,修改arcpy2.yml文件中的信息,將name: new_arcpy2改成想要建立的虛擬環境名

修改arcpy2.yml最后一行prefix: C:\Users\lqq\.conda\envs\new_arcpy2為想要建立的虛擬環境的路徑

執行conda env create -f 路徑\arcpy2.yml,就可以在新電腦上創建名稱為new_arcpy2的虛擬環境,且配置包與arcpy2.yml備份的虛擬環境相同

之后只需要像前文中一樣執行python -m ipykernel install --user --name new_arcpy2 --display-name "new_arcpy2"為jupyter添加新的虛擬環境的kernel信息

7 虛擬環境的移除

執行conda remove -n 環境名稱 --all來移除已經創建的環境,譬如我們使用conda remove -n Python2 --all將Python2環境移除之后,再次查看所有環境:


雖然已經移除了conda的虛擬環境,但是在 jupyter notebook 的 kernel 中已然存在Python2, 選擇改環境會報錯,因為改環境已經不存在

使用jupyter kernelspec list可以查看 jupyter 中的 kernel 信息

使用jupyter kernelspec remove 名稱,對 kernal 進行刪除


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM