I am kind of annoyed by the installation of modules in python and had a lot of trouble with it, so it would be fantastic to find a good solution for it. Here are my issues:
- PYTHONPATH: How can I tell easy_install/Python where to install my packages?
Even though I put: /Library/Python/2.6/site-packages
in my .bash_profile
With:
PYTHONPATH="/Library/Python/2.6/site-packages"
export PYTHONPATH
It wont import packages I have there.
On the other site everything I put into:
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages
Works. I dont know why and would love to know.
- I just install "south" with the command
easy_install south
and it installed it, guess, right into:
/Library/Python/2.6/site-packages
Now copied "south" Which was installed there (it was in a Folder called: South-0.7.2-py2.6.egg
, i just copied south) and pasted it to
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages
And now I can import it when going to directory of my django project (in which settings.py-Installed Apps I have 'south') and
python manage.py shell
Which according to south is a good indicator that it works.
- Can/Do I have to do that for every module? Is there a better elegant way to solve this. Please say there is.
Thanks
Based on the path (/Library/Frameworks/Python.framework/Versions/2.6
) in your question, you appear to have installed an additional Python besides the ones supplied by Apple. That's the standard installation path for the python.org OS X installer.
The trick to getting easy_install
to install to the right Python site-packages location is to understand that each Python instance you have needs to have its own copy of easy_install
and you need to make sure you are using the right one when you install a package. For OS X 10.5 and 10.6, Apple supplies easy_install
commands in /usr/bin
for the Pythons it supplies. For example, in 10.6:
$ ls -l /usr/bin/easy_install*
-rwxr-xr-x 2 root wheel 925 Jun 30 2009 /usr/bin/easy_install*
-rwxr-xr-x 1 root wheel 421 Jun 30 2009 /usr/bin/easy_install-2.5*
-rwxr-xr-x 1 root wheel 421 Jun 30 2009 /usr/bin/easy_install-2.6*
They will install into the appropriate locations in /Library/Python/2.x/
which is where the Apple-supplied Pythons look for site-packages by default.
For a python.org Python, the default site-package locations are in /Library/Frameworks/Python.framework/Versions/x.y
. Under the appropriate directory there is a lib/pythonx.y/site-packages
as you found and also a bin
directory. To make the Python there the default, make sure that that bin
directory is on your shell PATH and comes before /usr/bin/
, so something like:
export PATH="/Library/Frameworks/Python.framework/Versions/2.6/bin:${PATH}"
The python.org installers by default try to modify your shell profile files, like .bash_profile
, to do this. Then follow the instructions to install either setuptools, which supplies the traditional version of easy_install
, or Distribute, the more cutting-edge version of easy_install
. You should then see aneasy_install
command in the framework bin
directory:
$ cd /Library/Frameworks/Python.framework/Versions/2.6
$ ls -l bin/easy_install*
-rwxr-xr-x 1 nad admin 360 Aug 25 07:30 bin/easy_install*
-rwxr-xr-x 1 nad admin 368 Aug 25 07:30 bin/easy_install-2.6*
and, if you use it to install packages, they will end up in the right place and everything will be happy.
The -d
argument to easy_install
tells it where to install the module(s).
sudo env ARCHFLAGS="-arch x86_64" easy_install-2.7 lxml
worked on Mac OS 10.9. Make sure to qualify the version of python you are using in the easy_install
command.