problemas ao importar arcpy no Python IDLE


9

Eu gostaria de usar arcpy no meu código python. Consigo importá-lo através do console python do desktop ARCGIS. Mas não consigo importá-lo para o Python IDLE. Eu obtenho o seguinte erro

Traceback (most recent call last):

File "C:\Python26\lib\site-packages\win32com\client\dynamic.py", line 246, in 
__getitem__raise TypeError("This object does not support enumeration") 

Mencionei as seguintes pastas como parte do meu caminho python.

C:\Program Files\ArcGIS\Desktop10.0\arcpy;
C:\Program Files\ArcGIS\Desktop10.0\arcpy\arcpy;
C:\Python26\ArcGIS10.0\Tools\Scripts

Encontrei o mesmo problema sendo mencionado.

importação arcpy produz "TypeError: este objeto não suporta enumeração"

O usuário diz que isso se deve ao seguinte:

Escrevi para o Arcgis 9 e 10 no mesmo diretório. Algo sobre a lógica de inicialização no import arcpy encontra o arcgisscripting.py personalizado usado para executar o python 2.6 com o arcgis 9.3 quando eles estão localizados juntos.

Eu tenho apenas o ARCGIS 10 e não sei como o arcpy procura seus módulos.


Você está simplesmente digitando import arcpy no shell Python (do IDLE) para ver esse erro? Ou talvez simplesmente digitando import arcpy em uma janela Python (de IDLE) e usando o Run Module para vê-lo? Você precisa usar um PITONONA longo? Eu apenas tenho PYTHONPATH = C: \ Python26 e C: \ Python26 \ ArcGIS10.0 como parte da minha variável PATH.
PolyGeo

Sim, estou apenas importando o módulo na janela IDLE. Também tentei usar esse interpretador python no ARCGIS, importando os módulos arpy. Eu ainda tenho o erro.
Karthik Bharadwaj

11
Você precisa usar um PITONONA longo? Eu apenas tenho PYTHONPATH = C: \ Python26 e C: \ Python26 \ ArcGIS10.0 como parte da minha variável PATH.
PolyGeo

11
solução windows -> reinstale o arcgis e o python.
Aragon

11
Gostaria de entender como o problema subjacente e como ele é causado, na pior das hipóteses, acho que tenho que desinstalar os dois. @PolyGeo. Mudei meu caminho e a variável de caminho python. mas o problema remove o mesmo.
Karthik Bharadwaj

Respostas:


9

Corrija seu PYTHONPATH. Da ajuda do ArcGIS:

Ao usar uma instrução de importação, o Python procura um módulo correspondente a esse nome nos seguintes locais (e na seguinte ordem):

  1. Caminhos especificados na PYTHONPATHvariável de ambiente do sistema
  2. Um conjunto de pastas Python padrão (a pasta atual, C:\python2x\lib, C:\python2x\Lib\site-packages, e assim por diante)
  3. Caminhos especificados dentro de qualquer .ptharquivo encontrado em 1 e 2

Para obter mais informações, consulte o seguinte: http://docs.python.org/install/index.html#modifying-python-s-search-path . A instalação dos produtos ArcGIS 10.0 instalará o Python 2.6 se ele ainda não estiver instalado. A instalação também adicionará o arquivo Desktop10.pth(ou Engine10.pthou Server10.pth) no python26\Lib\site-packages. O conteúdo deste arquivo é duas linhas que contêm o caminho para as pastas arcpy e bin da instalação do ArcGIS do sistema. Esses dois caminhos são necessários para importar o ArcPy com êxito no Python versão 2.6. Ao usar uma instrução de importação, Python se refere à PYTHONPATHvariável de ambiente do seu sistema para localizar arquivos de módulo. Essa variável é configurada para uma lista de diretórios.


Dica:

Se a importação do ArcPy produzir um dos seguintes erros, não foi possível encontrar os módulos necessários: ImportError: No module named arcpy ImportError: No module named arcgisscripting

Para resolver isso, navegue usando o Windows Explorer para a python26\Lib\site-packagespasta e adicione ou edite o Desktop10.ptharquivo. O arquivo deve conter as duas linhas mostradas abaixo (corrigidas para o caminho do sistema, se não corresponderem):

  • C:\Program Files\ArcGIS\Desktop10.0\arcpy
  • C:\Program Files\ArcGIS\Desktop10.0\bin

Obrigado a todos. Como o @Aragon sugeriu, eu reinstalei o ARCGIS Desktop e o Python. coloque o arquivo Desktop.pth no lugar e funcionou.
Karthik Bharadwaj
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.