配置Pyscripter以管理不同的Python发行版(Anaconda和ArcGIS)
我在使用Pyscripter的时候遇到了麻烦。我安装了ArcGIS(地理信息系统软件),它默认安装了Python 2.7.5。我想在Pyscripter中使用Anaconda和arcpy(ArcGIS的Python包),但是Pyscripter只“识别”ArcGIS的Python版本(在C:\Python27\ArcGIS10.2)。而我的Anaconda安装在C:\Python27\Anaconda。
我可以在Pyscripter中导入arcpy,但像pandas或scipy这样的库却无法导入。例如,当我输入
import sys
sys.version
我看到:
'2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)]'
当我在命令行中输入python并查看sys.version时,我看到:
'2.7.5 | Anaconda 1.6.0 (32-bit) | (default, May 31 2013, 10:43:53) [MSC v.1500 32 bit (intel)]'
所以我意识到是Pyscripter没有“识别”Anaconda的包。
有没有什么办法可以解决这个问题呢?
1 个回答
默认的Anaconda中的模块和Python版本可能比ESRI Python堆栈中的版本要新,尤其是像numpy这样的库。所以,你需要先弄清楚哪些版本的pandas、scipy,以及其他你想用的库,和ESRI Python中的numpy版本是兼容的。然后,你可以使用conda
在Anaconda中创建一个自定义环境,里面包含你需要的库,并且这些库要和你安装的ESRI Python相匹配。接下来,你需要让ESRI Python知道这个自定义环境的存在。这样就可以开始使用了。
以下内容适用于ArcGIS 10.2.2。
在ArcMap的Python中,输入:
import sys, numpy, matplotlib
print(sys.version, numpy.__version__, matplotlib.__version__)
你可能会看到类似这样的输出:
'2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)]', '1.7.1', '1.3.0')
打开Anaconda命令提示符(在Windows中,点击开始 > 搜索 > Anaconda,选择“Anaconda命令提示符”
),然后输入:
conda create -n arc1022 python=2.7.5 numpy=1.7.1 matplotlib=1.3.0
这将创建一个名为arc1022
的新虚拟环境。
通过在C:\Python27\ArcGIS10.2\Lib\site-packages
(这个路径可能会根据你的Arc安装路径有所不同)中添加一个文件arc1022.pth
,来告诉ArcGIS这些信息。这个文件的内容应该包括:
C:\Anaconda\envs\arc1022\Lib\site-packages
(这个路径可能会根据你安装Anaconda的位置略有不同)。