18

我创建了一个 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

4 回答 4

31

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
于 2014-08-21T19:37:45.100 回答
8

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

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

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

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

于 2016-05-30T21:36:36.387 回答
1

Bpython 必须在每个 virtualenv 中安装 pip3

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

>>> import slqalchemy

于 2020-12-11T09:20:48.507 回答
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
>>> 

于 2021-03-13T18:20:05.717 回答