Mo *_*der 76 python virtualenv ipython
我知道IPython不支持virtualenv,并且最合乎逻辑的解决方案是在每个virtualenv中单独使用ipython
pip install ipython
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.我注意到的一件事是,如果在virtualenv $> ipython下安装IPython之前使用virtualenv调用系统范围的IPython副本,后续$> ipython命令将继续调出系统范围的ipython副本.
另一方面,如果在安装它之前未调用ipython,则会在virtualenv 下调$> ipython出新安装的副本.
对此有何解释?
这也让我想知道这种行为是否意味着我应该期待一些麻烦呢?
rgt*_*gtk 10
您可以通过将以下文件添加到以下内容来强制IPython使用虚拟环境(如果可用)~/.ipython/profile_default/startups:
import os
import sys
if 'VIRTUAL_ENV' in os.environ:
py_version = sys.version_info[:2] # formatted as X.Y
py_infix = os.path.join('lib', ('python%d.%d' % py_version))
virtual_site = os.path.join(os.environ.get('VIRTUAL_ENV'), py_infix, 'site-packages')
dist_site = os.path.join('/usr', py_infix, 'dist-packages')
# OPTIONAL: exclude debian-based system distributions sites
sys.path = filter(lambda p: not p.startswith(dist_site), sys.path)
# add virtualenv site
sys.path.insert(0, virtual_site)
Run Code Online (Sandbox Code Playgroud)
我建议命名它,00-virtualenv.py以便尽早进行更改.
注意:确保在新的虚拟环境中安装了ipython以使其正常工作.
小智 9
@SiddharthaRT给出的答案很好!按照这种方法,对我来说更简单:
python -m IPython
Run Code Online (Sandbox Code Playgroud)
这将通过python bin使用模块IPython,确保它引用了虚拟环境中的bin。
正如其他人所提到的,ipython 的最新版本是 virtualenv 感知的,因此您可以使用您的 virtualenv bin activate脚本使用您的 virtualenv 运行 ipython,例如
$ source venv/bin/activate
(venv) $ ipython
WARNING: Attempting to work in a virtualenv. If you encounter problems, please install IPython inside the virtualenv.
Run Code Online (Sandbox Code Playgroud)
小智 6
使用source ~/.virtualenvs/my_venv/bin/activate或通过在my_venv 上运行work来激活您的虚拟环境(取决于您如何安装 my_venv 虚拟环境)
安装 ipython
pip 安装 ipython
如果它仍然加载系统的 ipython,则运行
哈希 -r
| 归档时间: |
|
| 查看次数: |
30061 次 |
| 最近记录: |