我按照本教程在CentOS 5.5上安裝python2.7:
http://villaroad.com/2010/10/rolling-python-2-6-2-on-centos-5-3/
安裝python 2.7之后我得到了:
/opt/python2.7$ls -latotal 24drwxr-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 bindrwxr-xr-x 3 root root 4096 2011-10-01 22:32 includedrwxr-xr-x 4 root root 4096 2011-10-01 23:34 libdrwxr-xr-x 3 root root 4096 2011-10-01 22:32 share/opt/python2.7$ls -la bintotal 88drwxr-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-configlrwxrwxrwx 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
我使用/opt/python2.7/bin/virtualenv二進制文件在/ var / www / myproj / env中創(chuàng)建環(huán)境
cd /var/www/myproj virtualenv --no-site-packages -p /opt/python2.7/bin/python \ --clear --prompt="(myproj.com) " env
激活它,并做pip安裝燒瓶. pip安裝燒瓶到env / lib / python2.7 / site-packages,它不在sys.path上
$pythonPython 2.7.2 (default, Oct 1 2011, 23:29:08)[GCC 4.4.1] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import flaskTraceback (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']
我試過相同但使用easy_install而不是pip – 相同的結(jié)果.
Flask安裝在env / lib / python2.7 / site-packages下,所以主要的問題是:不用virtualenv必須將env / lib / python2.7 / site-packages添加到python的sys路徑中嗎?如果沒有,我該做得更好:
>在運行時在python路徑上添加適當(dāng)?shù)膕ite-packages目錄(例如,我的燒瓶應(yīng)用程序中的sys.path.insert(0,< path to site-packages>),
>修改系統(tǒng)的PYTHONPATH或
>觸發(fā)virtualenv的after_install方法,以添加<路徑到site-packages>到python的路徑
?
更多信息:
我已添加到用戶和root的?/ .bash_profile(Ubuntu上的?/ .profile)
alias python='/opt/python2.7/bin/python'alias python2.7='/opt/python2.7/bin/python'PATH=$PATH:/opt/python2.7/bin
做了?/ .profile
哪個python產(chǎn)生/usr/bin/python是2.6.4(嗯……)
Python 2.6.4 (r264:75706, Dec 7 2009, 18:43:55)[GCC 4.4.1] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> exit()
奇怪,但如果我運行python我得到正確的版本:
$pythonPython 2.7.2 (default, Oct 1 2011, 23:29:08)[GCC 4.4.1] on linux2Type "help", "copyright", "credits" or "license" for more information.
更奇怪的是,在關(guān)注python2.7安裝教程之后,我得到了/ opt / python2.7 / bin / python上的python命令.無論如何,問題在那里,任何幫助表示贊賞.請考慮一下,我是一個Python新手, – 這可能是我在這里問的一個愚蠢的問題.
解決方法:
每當(dāng)您使用Bash運行命令時,它都會緩存命令的位置.這可能就是你在這里碰到的.使用hash -r清理緩存.
請注意,您的系統(tǒng)中現(xiàn)在有三個Python:系統(tǒng)在/usr/bin中的2.6,/ opt / python2.7 / bin /中的2.7,以及env / bin中的virtualenv’s 2.7.只有最后一個安裝了燒瓶.更加確定你正在打算那個.
另外,不要亂用.bash_profile.特別是root的.bash_profile – 你不需要燒瓶的root權(quán)限,對嗎?堅持使用virtualenv,它更清潔,你的系統(tǒng)陷入困境的可能性要小得多.
(話雖如此,$PATH會被掃描第一場比賽,所以你需要導(dǎo)出PATH = / opt / python2.7 / bin:$PATH而不是PATH = $PATH:/opt/python2.7/bin.但是那是你下次需要改變$PATH的時候,不是現(xiàn)在.)