<p>我一直在试图复制你的问题,但没有成功。在</p>
<p>激活virtualenv会给我留下如下提示:</p>
<pre><code>jeff@DeepThought:~$ source ~/ENV/bin/activate
(ENV)jeff@DeepThought:~$
</code></pre>
<p>这主要是将~/ENV/bin添加到搜索路径的前面,这样当我键入“python”时,我在该bin中安装的版本会首先出现。在我的例子中,我在全球安装了2.6,虚拟安装了2.7。在</p>
^{pr2}$
<p>我对您的案例感到奇怪的是,您说您在虚拟环境中有更新的库,但您只能使用python2.6访问它们。除非您是自己创建的,~/ENV/bin甚至不应该有python2.6可执行文件。如果您激活了virtualenv,那么键入python应该会将您带到virtualenvpythonshell,而输入python2.6将带您进入全局pythonshell。如果是这样的话,你应该看到与你所说的相反的情况。在</p>
<p>我要做的第一件事是检查运行python和python2.6时执行的操作:</p>
<pre><code>(ENV)jeff@DeepThought:~$ which python
/home/jeff/ENV/bin/python
(ENV)jeff@DeepThought:~$ which python2.6
/usr/bin/python2.6
</code></pre>
<p>这看起来像我期望的那样。你的长什么样?如果您的文件也是这样的,那么您可能需要进入~/ENV/lib/python2.6/site-packages/删除给您带来麻烦的文件,用更新的文件替换它们。在</p>
<p>编辑:别名优先于搜索路径:</p>
<pre><code>jeff@DeepThought:~$ echo $PATH
/home/jeff/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
jeff@DeepThought:~$ cat > /home/jeff/bin/hello.sh
#!/bin/bash
echo "hello world"
jeff@DeepThought:~$ chmod +x ~/bin/hello.sh
jeff@DeepThought:~$ hello.sh
hello world
jeff@DeepThought:~$ which hello.sh
/home/jeff/bin/hello.sh
jeff@DeepThought:~$ alias hello.sh=/usr/bin/python
jeff@DeepThought:~$ which hello.sh
/home/jeff/bin/hello.sh
jeff@DeepThought:~$ hello.sh
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
</code></pre>