简体   繁体   中英

Confusing Python install in user local (virtualenv, pip, distribute)

I tried to install python below way. But this did not work. This take "error: bad install directory or PYTHONPATH".

What's the proper way to install pip, virtualenv, and distribute for Python?

Make directory

$ mkdir -p ~/.python

Add .bashrc

#Use local python
export PATH=$HOME/.python/bin:$PATH
export PYTHONPATH=$HOME/.python

Create a file ~/.pydistutils.cfg

[install]
prefix=~/.python

Get install script

$ cd ~/src
$ curl -O http://python-distribute.org/distribute_setup.py

Execute and Error

$ python ./distribute_setup.py
Extracting in /tmp/tmpsT2kdA
Now working in /tmp/tmpsT2kdA/distribute-0.6.15
Installing Distribute
Before install bootstrap.
Scanning installed packages
No setuptools distribution foundrunning install
Checking .pth file support in /home/sane/.python/lib/python2.6/site-packages//usr/bin/python -E -c pass
TEST FAILED: /home/sane/.python/lib/python2.6/site-packages/ does NOT support .pth files
error: bad install directory or PYTHONPATH
You are attempting to install a package to a directory that is not
on PYTHONPATH and which Python does not read ".pth" files from.  The
installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:
/home/sane/.python/lib/python2.6/site-packages/
and your PYTHONPATH environment variable currently contains:
'/home/sane/.python'
Here are some of your options for correcting the problem:
* You can choose a different installation directory, i.e., one that is 
on PYTHONPATH or supports .pth files
* You can add the installation directory to the PYTHONPATH environment 
variable.  (It must then also be on PYTHONPATH whenever you run 
Python and want to use the package(s) you are installing.)
* You can set up the installation directory to support ".pth" files by 
using one of the approaches described here:
http://packages.python.org/distribute/easy_install.html#custom-installation-locations

Please make the appropriate changes for your system and try again.
Something went wrong during the installation.
See the error message above.

My environment('sane' is my unix user name.)

$ python -V
Python 2.6.4
$ which python
/usr/bin/python
$ uname -a
Linux localhost.localdomain 2.6.34.8-68.fc13.x86_64 #1 SMP Thu Feb 17 15:03:58 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

Usually I installed distributed/easy_install aka setuptools in my global Python installation together with virtualenv. From this point on I can created dedicated virtualalized environments using

virtualenv --no-site-packages name-of-environment

Really no idea why to fiddle around with PYTHONPATH here.

Adding /path/to/name-of-environment/bin to $PATH is good enough for adding the virtualized Python to your $PATH. You don't need any else.

I choice pythonbrew. I can use multiple Pythons in my home directory by this. It's a great job.

utahta/pythonbrew - GitHub https://github.com/utahta/pythonbrew

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM