sim*_*ona 6 python sqlite virtualenv ipython
我已经在我的帐户上从源代码安装了 python 3.3.6 和 ipython 3.0.0。我在Linux集群(RedHad4.9)上。当我启动 ipython 时,我收到以下消息:
WARNING: Attempting to work in a virtualenv. If you encounter problems, please install IPython inside the virtualenv.
WARNING: IPython History requires SQLite, your history will not be saved.
Run Code Online (Sandbox Code Playgroud)
我不确定 avirtualenv
是什么,以及为什么我尝试在 a 中工作virtualenv
。我已经研究这个问题有一段时间了,但找不到解决方案。有人能以正确的方式提示我吗?
由于您从源代码安装了 python 和 iPython,这似乎是最好的修复方法:修复此问题的一个简单方法是在非根位置安装 Python,并使用 pip 安装 iPython。它在全局模块中查找 iPython,而不是在本地模块中查找,因此它假设您正在使用 virtualenv。只需使用 pip 安装即可。
至于虚拟环境,它们是虚拟 python 安装,限制对全局模块的访问,以便您可以测试自定义模块,做其他很酷的事情。例如,您可以激活和停用不同的环境。安装后(到同一目录):
$ virtualenv .
$ source bin/activate
Run Code Online (Sandbox Code Playgroud)
然后我在 virtualenv 中运行。由于找到了 iPython 命令,但全局 Python 与安装的 Python 不同,但它给了我一个警告。 https://virtualenv.pypa.io/en/latest/
通常,如果您正在运行虚拟环境,您的 shell 应该反映这一点:
没有虚拟环境:
alex@alex-Gazelle-Professional:~$
Run Code Online (Sandbox Code Playgroud)
使用虚拟环境:
(no-pyside)alex@alex-Gazelle-Professional:~$
Run Code Online (Sandbox Code Playgroud)
编辑:
本地模块和全局模块之间的区别。Python 搜索已安装模块的路径可以如下:
导入系统;print sys.path ['', '/home/alexvirtualenvs/no-pandas/lib/python2.7', '/home/alexvirtualenvs/no-pandas/lib/python2.7/plat-x86_64-linux-gnu', '/home/alexvirtualenvs/no-pandas/lib/python2.7/lib-tk', '/home/alexvirtualenvs/no-pandas/lib/python2.7/lib-old', '/home/alexvirtualenvs/no- pandas/lib/python2.7/lib-dynload', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2 .7/lib-tk', '/home/alexvirtualenvs/no-pandas/local/lib/python2.7/site-packages', '/home/alexvirtualenvs/no-pandas/lib/python2.7/site-packages ']
这是在虚拟环境中。查看搜索路径如何不包含 /usr/lib 等。如果我停用 virtualenv 并进行全局搜索,我会得到以下结果:
>>> import sys; print sys.path
['', '/usr/local/lib/python2.7/dist-packages/h5py-2.5.0-py2.7-linux-x86_64.egg', '/usr/local/lib/python2.7/dist-packages/XlsxWriter-0.7.3-py2.7.egg', '/usr/local/lib/python2.7/dist-packages/pyqtgraph-0.9.10-py2.7.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client', '/usr/lib/python2.7/dist-packages/wx-3.0-gtk2']
Run Code Online (Sandbox Code Playgroud)
在这里,除了“”(当前目录)之外的所有内容都被全局安装。