在Virtualenv下运行ArcGIS 10.0


12

我正在研究一个Python程序包,该程序包混合了命令行工具和ArcToolbox工具。对于Python开发,使用VirtualEnv非常有用,尤其是在使用安装程序时。是否有一种方法可以让ArcMap或ArcCatalog识别Python中的当前VirtualEnv会话,以便在执行自定义工具时,它使用VirtualEnv Python路径和软件包,而不是c:\ Python26 \ ArcGIS10的默认Python路径和软件包。 .0?

Answers:


11

那不是内置在应用程序中的,但是我认为运行在cmd.exe会话中设置virtualenv的批处理文件,然后从同一DOS框中运行arcmap.exe应该可以使您获得virtualenv。ArcMap和朋友略微修改路径以包括安装的arcgisscriptingarcpy

编辑:您需要在桌面应用程序的Python窗口中显式调用activate_this脚本,以使其正常工作。如果我有VirtualEnv,c:\Users\jason\myenv我将execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})在ArcGIS桌面应用程序的Python窗口中发布以使其运行。


这似乎不起作用。我创建了VirtualEnv工作区,将其激活,然后安装了要在ArcCatalog中测试的软件包。到现在为止还挺好。如果我在此VirtualEnv会话中打开一个Python shell并导入新安装的软件包-导入将起作用。如果随后启动ArcCatalog并尝试从工具箱脚本中调用这些软件包之一,则它将无法正常工作。如果从ArcCatalog内的Python外壳查看sys.path,它将显示ArcGIS 10.0的默认Python目录(C:\ Python26 \ ArcGIS10.0)。
SagebrushGIS

4
activate_this.py在ArcCatalog和好友的Python窗口中,也可以在VirtualEnv的同一Scripts目录中使用脚本。我能够execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})从ArcMap中执行并启动VirtualEnv。
詹森·谢勒

1
太棒了!做到了。
SagebrushGIS
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.