配置Pyscripter以管理不同的Python发行版(Anaconda和ArcGIS)

2 投票
1 回答
2772 浏览
提问于 2025-04-18 18:28

我在使用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 个回答

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的位置略有不同)。

撰写回答