Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
411 views
in Technique[技术] by (71.8m points)

installation - Python Pythonpath Modules install

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:

  1. 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.

  1. 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.

  1. Can/Do I have to do that for every module? Is there a better elegant way to solve this. Please say there is.

Thanks

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

56.9k users

...