Python „nevidí“ balíček

hlasů
4

Sledoval jsem tento návod k instalaci python2.7 na mém CentOS 5.5: http://villaroad.com/2010/10/rolling-python-2-6-2-on-centos-5-3/

Po instalaci Pythonu 2.7 mám:

/opt/python2.7$ ls -la
total 24
drwxr-xr-x 6 root root 4096 2011-10-01 22:32 .
drwxr-xr-x 4 root root 4096 2011-10-01 22:32 ..
drwxr-xr-x 2 root root 4096 2011-10-09 19:51 bin
drwxr-xr-x 3 root root 4096 2011-10-01 22:32 include
drwxr-xr-x 4 root root 4096 2011-10-01 23:34 lib
drwxr-xr-x 3 root root 4096 2011-10-01 22:32 share

/opt/python2.7$ ls -la bin
total 88
drwxr-xr-x 2 root root  4096 2011-10-09 19:51 .
drwxr-xr-x 6 root root  4096 2011-10-01 22:32 ..
-rwxr-xr-x 1 root root   105 2011-10-01 22:32 2to3
-rwxr-xr-x 1 root root   296 2011-10-09 19:49 easy_install
-rwxr-xr-x 1 root root   304 2011-10-09 19:49 easy_install-2.7
-rwxr-xr-x 1 root root   103 2011-10-01 22:32 idle
-rwxr-xr-x 1 root root   254 2011-10-03 01:37 pip
-rwxr-xr-x 1 root root   262 2011-10-03 01:37 pip-2.7
-rwxr-xr-x 1 root root    88 2011-10-01 22:32 pydoc
-rwxr-xr-x 2 root root 11783 2011-10-01 23:34 python
-rwxr-xr-x 2 root root 11783 2011-10-01 23:34 python2.7
-rwxr-xr-x 1 root root  1628 2011-10-01 23:34 python2.7-config
lrwxrwxrwx 1 root root    16 2011-10-01 23:34 python-config -> python2.7-config
-rwxr-xr-x 1 root root 18551 2011-10-01 22:32 smtpd.py
-rwxr-xr-x 1 root root   289 2011-10-09 19:51 virtualenv

Používám /opt/python2.7/bin/virtualenvbinární vytvořit prostředí, v/var/www/myproj/env

cd /var/www/myproj 
virtualenv --no-site-packages -p /opt/python2.7/bin/python \ 
     --clear --prompt=(myproj.com)  env

Aktivovat, a to pip nainstalovat baňky. PIP installes baňky se env/lib/python2.7/site-packagesa není to na sys.path

$ python
Python 2.7.2 (default, Oct  1 2011, 23:29:08)
[GCC 4.4.1] on linux2
Type help, copyright, credits or license for more information.
>>> import flask
Traceback (most recent call last):
  File <stdin>, line 1, in <module>
ImportError: No module named flask
>>> import sys
>>> sys.path
['', '/opt/python2.7/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg', 
'/opt/python2.7/lib/python2.7/site-packages/pip-1.0.2-py2.7.egg', 
'/opt/python2.7/lib/python27.zip', '/opt/python2.7/lib/python2.7', 
'/opt/python2.7/lib/python2.7/plat-linux2', '/opt/python2.7/lib/python2.7/lib-tk', 
'/opt/python2.7/lib/python2.7/lib-old', '/opt/python2.7/lib/python2.7/lib-dynload', 
'/opt/python2.7/lib/python2.7/site-packages']

Zkoušel jsem totéž, ale za použití easy_installmísto pip- se stejným výsledkem.

Baňka se instalována pod env/lib/python2.7/site-packages, takže hlavní otázka zní: nemají virtualenvmuset přidat env/lib/python2.7/site-packagesdo sys dráze Python? Pokud ne, co mám dělat lépe:

  • přidat vhodnou site-packages adresáře na python cestě za běhu (např sys.path.insert(0, <path to site-packages>)mého baňky žádosti,
  • modifikovat systém je PYTHONPATHnebo
  • Trigger VIRTUALENV je after_installzpůsob, jak přidat <path to site-packages>do cesty Python

?

některé další informace: Přidal jsem k uživateli je i kořen je ~ / .bash_profile (~ / .profile na Ubuntu)

alias python='/opt/python2.7/bin/python'
alias python2.7='/opt/python2.7/bin/python'
PATH=$PATH:/opt/python2.7/bin

dělal source ~/.profile který python produkuje /usr/bin/pythoncož je 2.6.4 (hmmmm ...)

Python 2.6.4 (r264:75706, Dec  7 2009, 18:43:55)
[GCC 4.4.1] on linux2
Type help, copyright, credits or license for more information.
>>> exit()

Dost zvláštní, ale když jsem běžet pythonZačínám správnou verzi:

$ python
Python 2.7.2 (default, Oct  1 2011, 23:29:08)
[GCC 4.4.1] on linux2
Type help, copyright, credits or license for more information.

Co je však ještě podivné je, že po následující instalační python2.7 tutoriálu jsem se dostat /opt/python2.7/bin/pythonna which pythonpovel. Mimochodem, otázka je tam nahoře, jakákoliv pomoc je oceňována. Prosím, vzít v úvahu, že jsem python nováček, - pravděpodobně je to hloupá otázka, ptám tady.

Položena 09/10/2011 v 11:53
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
4

Kdykoliv spuštění aa příkaz s Bash, to ukládá polohu Command. To může být to, co máte spuštěnou do zde. Použijte hash -rk čištění cache.

Všimněte si, že máte tři pythons v systému teď: systémový 2.6 v / usr / bin, 2,7 v /opt/python2.7/bin/ a VIRTUALENV v 2.7 ENV / bin. Pouze poslední z nich má baňky nainstalován. Ujistěte se navíc zda jste caling že jeden.

Také, nepleťte s .bash_profile. Především kořenových je .bash_profile - nepotřebujete práva uživatele root pro baňky, že ne? Držet VIRTUALENV, je mnohem čistší a tam je mnohem menší šance, budete zkazit váš systém. (Jak již bylo řečeno, $ PATH je snímán na první zápas, takže místo PATH=$PATH:/opt/python2.7/binbyste chtěli export PATH=/opt/python2.7/bin:$PATH. Ale to pro příště budete muset změnit $ PATH, není pro tuto chvíli.)

Odpovězeno 09/10/2011 v 12:27
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more