【问题标题】:Running bpython inside a virtualenv在 virtualenv 中运行 bpython
【发布时间】:2014-08-21 19:37:45
【问题描述】:

我创建了一个 virtualenv 并在其中安装了SQLAlchemy

$ virtualenv alchemy
$ source alchemy/bin/activate
$ pip install sqlalchemy

import 在 python 中工作:

$ python
Python 2.7.5 (default, Mar  9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlalchemy
>>> print sqlalchemy.__version__
0.9.7

但在bpython中不起作用:

>>> import sqlalchemy
Traceback (most recent call last):
  File "<input>", line 1, in <module>
ImportError: No module named sqlalchemy

为什么bpython在调用source alchemy/bin/activate之后执行,却找不到安装在virtualenv中的包?

【问题讨论】:

    标签: python pip virtualenv bpython


    【解决方案1】:

    bpython 必须安装在 virtualenv 中,否则会调用外部的、系统范围的 bpython:

    $ source alchemy/bin/activate
    (alchemy)[ 10:34PM ]  [ adamatan@rubidium:/tmp ]
    $ pip install bpython
    ...
    $ alchemy/bin/bpython
    --------------
    >>> import sqlalchemy
    >>> print sqlalchemy.__version__
    0.9.7
    

    【讨论】:

    • 有没有办法避免这种行为并使用 virtualenv 访问 /usr/lib bpython?
    • 是的。您需要为您的激活脚本提供资源: $ source alchemy/bin/activate $ which bpython /usr/bin/bpython $ source alchemy/bin/activate $ which bpython alchemy/bin/bpython
    【解决方案2】:

    bpython 在其 shebang 中安装了硬编码的 python。

    您可以手动编辑它以使其使用当前的python。通过运行 $ vi $(which bpython) 来打开脚本。

    然后从例如更改顶行。 #!/usr/bin/python3 到例如。 #!/usr/bin/env python3.

    这应该使它使用 venv 的 python 运行。 bpython 不正式支持它,但它在 Mac OS X 和 Ubuntu 上一直对我有用。

    【讨论】:

      【解决方案3】:

      Bpython 必须在每个 virtualenv 中安装 pip3

      $ virtualenv . 
      $ source bin/activate 
      $ pip3 install bpython
      $ pip3 install sqlalchemy
      $ bpython
      
      

      &gt;&gt;&gt; import slqalchemy

      【讨论】:

        【解决方案4】:

        运行 bpython 作为对我有用的模块

        1. mkdir workout &amp;&amp; cd workout
        2. venv shell --python=3.8
        3. 安装你的依赖,例如,pipenv install gcloud
        4. pipenv install bpython
        5. python -m bpython
        python -m bpython
        bpython version 0.21 on top of Python 3.8.5 /home/dennys/.local/share/virtualenvs/workout-qTtsVfjR/bin/python
        >>> from gcloud import bigquery
        >>> 
        
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-09-28
          • 1970-01-01
          • 2019-07-07
          • 1970-01-01
          • 2015-11-08
          • 2014-04-18
          • 1970-01-01
          相关资源
          最近更新 更多