在虚拟环境中运行bpython

19

我已经创建了一个虚拟环境,并在其中安装了SQLAlchemy

我创建了一个虚拟环境,然后在里面安装了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

但是在中它无法运行:

>>> import sqlalchemy
Traceback (most recent call last):
  File "<input>", line 1, in <module>
ImportError: No module named sqlalchemy
为什么在执行了source alchemy/bin/activate之后,bpython不能找到虚拟环境中安装的包?
5个回答

31

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
有没有办法避免这种行为并通过virtualenv访问/usr/lib bpython? - user3467349
有的。您需要为激活脚本分配资源:$ source alchemy/bin/activate $ which bpython /usr/bin/bpython $ source alchemy/bin/activate $ which bpython alchemy/bin/bpython - loutre
如果您在安装后离开并重新进入虚拟环境,那么将会找到正确的 bpython。不再需要提供虚拟环境 bin 目录的路径了。 - undefined

8
在其shebang中硬编码了安装的Python版本。
您可以手动编辑它以使用当前的Python版本。例如,运行$ vi $(which bpython)打开脚本。
然后将顶部行从例如 #!/usr/bin/python3 更改为例如 #!/usr/bin/env python3
这应该使其使用venv的Python运行。虽然它不受bpython的官方支持,但它在Mac OS X和Ubuntu上始终对我有效。

2

对我来说作为模块运行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
>>> 


2

Bpython必须在每个虚拟环境中使用pip3安装

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

>>> import slqalchemy


0
如果在你的venv bin文件夹中找不到bpython,你可以用sudo find / -name bpython命令来查找。在我的情况下,它安装在~/.local/bin/目录中。
$ source alchemy/bin/activate
$ pip install bpython
...
$ ~/.local/bin/bpython

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接