在virtualenv中运行bpython

时间:2014-08-21 19:37:45

标签: python pip virtualenv bpython

我创建了一个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无法找到virtualenv中安装的软件包,即使它是在调用source alchemy/bin/activate后执行的?

4 个答案:

答案 0 :(得分:24)

必须在virtualenv中安装

bpython,否则将调用外部系统范围的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

答案 1 :(得分:6)

bpython已经安装了pyb,并在其shebang中进行了硬编码。

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

然后从例如改变顶线。 #!/usr/bin/python3例如。 #!/usr/bin/env python3

这应该让它使用venv的python运行。它不是由bpython正式支持,但它在Mac OS X和Ubuntu上都一直适用于我。

答案 2 :(得分:1)

Bpython必须在每个virtualenv内部安装pip3

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

>>> import slqalchemy

答案 3 :(得分:1)

运行 bpython 作为模块对我有用

  1. mkdir workout && 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
>>>