ArcPy PyProj – Installing PyProj into ArcPy

arcpyimporterrorinstallationpyproj

I am trying to install pyproj. I downloaded the zip folder on this page pyproj.

Then I copied it to C:\Python27\ArcGIS10.3\Lib. However, when I try to import the module, I get the message:

ImportError: No module named pyproj.

I also tried to run the setup.py, but I get the message ImportError: No module named setuptools. I read somewher that it is working when I install Basemap, which is part of Matplotlib, but I cannot find pyproj there.

Any help?

Best Answer

For that, you must know the real Python world and the modern way to install modules.

1) The pyproj module needs the compilation of many C libraries and Windows has no compiler by default as in Linux or Mac OS X so you can't install the module with setuptools , easy_install or pip, the traditional way to install modules or unzipping the folder in C:\Python27\ArcGIS10.x\Lib\site-packages :

2) Christoph Gohlke's Unofficial Windows Binaries for Python Extension Packages has a pyproj compiled version ready for Windows but it is a ,whl file (pyproj-1.9.5-cp27-none-win32.whl)

Therefore, you need to install pip (How do I install pip on Windows?) and after Window: How do I install a Python package with a .whl file?

Then

pip install pyproj-1.9.5-cp27-none-win32.whl

or other whl file (pyproj-1.9.5-cp27-none-win_amd64.whl)

New

To install a Python module (in the site-packages of the Python installation):

a) if it is a simple pure Python module (geojson for example)

1) the classical way
- unzip the zip file (or tgz or)
- open a terminal or a command window in the unzipped folder and

python setup.py install 

You need setuptools if you want to manage all the eventual dependencies automatically (download and installation)

2) the new way (directly from Internet and you need setuptools)
- easy_install geojson
- pip install geojson

They install all the eventual dependencies automatically.

3) you can unzip the file and copy the resulting folder in the site-package folder but there is no management of the eventual dependencies.

b) if it is a complicated module or a module with C libraries (pyproj) or Fortran or...

1) this solution needs a compiler available to compile the C files into .dll or .pyd files (for Windows)
2) same for easy_install or pure pip install
3) you cannot simply copy the resulting folder (no compiled files)
4) the solution of pip and the .whl files

A wheel is a ZIP-format archive with a specially formatted filename and the .whl extension.

It is designed to contain all the necessary files. The contents of pyproj-1.9.5-cp27-none-win32.whl is

enter image description here

You recognize a .pyd file. You can try
- pip install pyproj -> it works if pip can download an adequate .whl file (for Windows) from the Python Package Index
- pip install pyproj-1.9.5-cp27-none-win32.whl -> the file downloaded
- unzipping the whl file in the site-packages folder -> no eventual dependencies management

c) With Anaconda

You can use the solutions 1), 2), 3) and 4) but Anaconda uses another package manager conda easier for the beginners
- conda install pyproj with the management of all the dependencies

If the Python version are the same (Python 2.7.x, 32 or 64 bits) you can try to copy the pyproj folder from the Anaconda distribution to the ArcGIS Python distribution.

Related Question