<p>正如<a href="https://stackoverflow.com/a/60294493/2745495">other answer</a>所指出的,问题的原因是:</p>
<blockquote>
<ol start="5">
<li>installed pew <code>(cvpr_env) ubuntu@ubuntupc:~/Downloads/camconvs-master$ pip install pew</code></li>
</ol>
</blockquote>
<p>在这里,您在<code>virtualenv</code>内安装了<code>pew</code></p>
<p>如<a href="https://stackoverflow.com/questions/60293300/something-runs-automatically-while-opening-a-terminal-ubuntu-16-04#comment106802954_60293300">my comment</a>中所述,安装<code>pew</code>会在一个<em>标准</em>{<cd4>}文件夹下安装二进制文件,该文件夹通常是<code>/usr/local/bin/</code>或<code>/home/<username>/.local/bin</code>或<code>/usr/bin</code>,具体取决于您的Python/<code>pip</code>安装权限</p>
<pre><code>gino:~$ python3 -m pip install user pew
Requirement already satisfied: pew in ./.local/lib/python3.6/site-packages (1.2.0)
Requirement already satisfied: virtualenv>=1.11 in /usr/local/lib/python3.6/dist-packages (from pew) (16.6.0)
Requirement already satisfied: setuptools>=17.1 in /usr/lib/python3/dist-packages (from pew) (39.0.1)
Requirement already satisfied: virtualenv-clone>=0.2.5 in /usr/local/lib/python3.6/dist-packages (from pew) (0.5.3)
gino:~$ which pew
/home/gino/.local/bin/pew
</code></pre>
<p>请注意,我说的是<em>标准</em>文件夹,因为在Ubuntu上,默认情况下,这些文件夹路径包含在<code>PATH</code>环境变量中。用<code>echo $PATH</code>试试看。这是系统查找可执行文件的所有路径的列表。因此,当我只输入<code>pew</code>(没有完整路径)时,系统知道在哪里可以找到它。如果不能,它会抛出您得到的错误:“<em>没有找到命令‘pew’</em>”</p>
<p>现在,回到您所做的,因为您在虚拟环境<code>(cvpr_env)</code>中安装了<code>pew</code>,所以<code>pew</code>将安装在该虚拟环境的<code>bin</code>文件夹中:</p>
<pre><code>gino:~$ upvenv cvpr_env
(cvpr_env) gino:~$ pip install pew
...
Successfully installed appdirs-1.4.3 distlib-0.3.0 filelock-3.0.12 importlib-metadata-1.5.0 pew-1.2.0 six-1.14.0 virtualenv-20.0.5 virtualenv-clone-0.5.3 zipp-3.0.0
(cvpr_env) gino:~$ which pew
/home/gino/.venvs/cvpr_env/bin/pew
</code></pre>
<p>。。虚拟环境目录的路径不是<code>PATH</code>中列出的<em>标准</em>路径的一部分。您可以在<code>pew</code>行之前的<code>.bashrc</code>行中添加<code>echo $PATH</code>行以打印所有路径</p>
<p>那怎么办呢?
以下是可能的解决方案:</p>
<ol>
<li><p>在虚拟环境外部安装<code>pew</code><strong></p>
<ul>
<li>嗯,这是最简单的</李>
<li>从<a href="https://github.com/berdario/pew/blob/master/README.md" rel="nofollow noreferrer">pew</a>文档来看,它应该是Python虚拟环境的包装器。因此,您可以使用它来激活虚拟环境并在其中工作。您无需手动执行<code>virtualenv activate</code>即可使用<code>cvpr_env</code>。检查<a href="https://github.com/berdario/pew/blob/master/README.md#common-workflow" rel="nofollow noreferrer">common workflow</a>的用法</李>
<li>根据<a href="https://github.com/jmfacil/camconvs#use-instructions" rel="nofollow noreferrer">canconvs</a>指令,它说使用<code>pew</code>作为虚拟环境</李>
</ul></li>
<li><p>如果您已经拥有自己的虚拟环境,则无需安装和使用<code>pew</code>。但是,如果您<em>真的</em>想在虚拟环境中拥有<code>pew</code>(不确定这将如何工作),您可以执行以下操作之一:</p>
<ul>
<li>将<code>/path/to/venv/bin/pew</code>添加到<code>PATH</code>环境变量中。在<code>.bashrc</code>中,将这些<strong>添加到调用<code>pew</code>的行之前(在虚拟环境中使用<code>which pew</code>以获得正确的路径)
<pre><code>export PATH="$PATH:/path/to/your/venv/bin/pew"
</code></pre></li>
<li>在<code>.bashrc</code>中指定到<code>pew</code>的完整路径
<pre><code>/path/to/your/venv/bin/pew ...
</code></pre></li>
</ul></li>
</ol>