我创建了一个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
后执行的?
答案 0 :(得分:24)
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 作为模块对我有用
mkdir workout && cd workout
venv shell --python=3.8
pipenv install gcloud
pipenv install bpython
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
>>>