我在使用Python,iPython和库时遇到了麻烦。以下几点显示了问题链。我在Mac Lion上运行Python 2.7。
我已尝试过其他一些我从其他博客中遇到过的事情。但是他们都没有帮助,也不幸的是我不知道我在做些什么。例如: 我尝试使用easy_install和pip卸载并重新安装ipython。我还尝试通过自制程序重新安装所有内容,并修改路径.bash_profile。
答案 0 :(得分:136)
好的快速修复:
which python
给你/usr/bin/python
,对吗?做
which ipython
我打赌那将是/usr/local/bin/ipython
。让我们看看里面:
编辑9/7/16 - 文件现在如下所示:
cat /usr/local/bin/ipython
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from IPython import start_ipython
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(start_ipython())
我的工作正常,但我的情况与OP不完全相同。
原始答案 - 2013年9月30日:
cat /usr/local/bin/ipython
#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'ipython==0.12.1','console_scripts','ipython'
__requires__ = 'ipython==0.12.1'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('ipython==0.12.1', 'console_scripts', 'ipython')()
)
啊哈 - 在您的编辑器中打开/usr/local/bin/ipython
(有权限),并将第一行更改为
#!/usr/local/bin/python
保存,启动iPython,应该说它正在使用你想要的版本。
答案 1 :(得分:9)
使用virtualenv怎么样? 我很喜欢。也许这不是更快的方式,但我认为非常清楚。
创建virtualenv时,可以使用-p标志指定python路径。
for python 2.7
$ virtualenv -p /usr/bin/python2.7 venv2.7
$ source venv2.7/bin/activate
(venv2.7)$ pip install ipython
(venv2.7)$ ipython
for python 3.4
$ virtualenv -p /usr/bin/python3.4 venv3.4
$ source venv3.4/bin/activate
(venv3.4)$ pip install ipython
(venv3.4)$ ipython
答案 2 :(得分:6)
首先,我会确保你使用正确的python。在命令提示符下键入:
which python
python -V
第一个会告诉你路径,第二个会告诉你你正在使用的Python版本。
答案 3 :(得分:2)
我的解决方案很简单,很愚蠢但很有效。
我使用python -V
来确定哪个版本
$ python -V
Python 2.7.10
然后在.bash_profile
中创建别名$ vi ~/.bash_profile
添加一行
alias ipython="python -m IPython"
然后你将在python 2.7中获得ipython
。
(顺便说一句,我的ipython
是通过homebrew
安装的,默认情况下会在python 3中运行ipython。)
$ brew install ipython
答案 4 :(得分:1)
使用pyenv
的类似方法pyenv install 3.4.5
pyenv local 3.4.5
pip install ipython
ipython
现在它将显示正确版本的python
Python 3.4.5
答案 5 :(得分:1)
非常相关:http://conda.pydata.org/docs/troubleshooting.html#shell-command-location。
td;因为shell'哈希问题而遇到问题。和路径变量。
答案 6 :(得分:1)
我能想到的绝对最简单的解决方案,不需要摆弄环境,安装文件或其他任何东西,依赖于事实
ipython
实际上是一个Python脚本。pip intall
的每个解释器单独安装IPython包
醇>
如果你运行的Python版本安装了一个IPython软件包,你可以这样做
/path/to/desired/python $(which ipython)
这将使用您想要的解释器运行ipython
脚本,而不是shebang中列出的解释器。
答案 7 :(得分:1)
将@Matt的评论发布为答案,以便其更加可见
python -m IPython
首先使用路径上可访问的任何python将ipython加载为模块。就我而言,我预装了一个,然后从brew中添加了一个。这只是完美的工作。
答案 8 :(得分:0)
你的问题基本上是让ipython使用正确的python。
所以解决问题的方法是让ipython使用正确的python(它安装了像scipy这样的库)
我在这里写了一个解决方案:
答案 9 :(得分:0)
我遇到了同样的问题,但以下是OSX 12,Sierra的唯一解决方案。
ipython总是为python 3.6启动,但我需要2.7。我找不到2.7的ipython启动脚本,也找不到要用python -m
执行的IPython模块。 brew instally ipython
pip install ipython
或pip2 install ipython
都无法获得2.7版本。所以我手动拿到了它。
brew install ipython@5
安装来自here的2.7版本,但不会将其放在$PATH
上,因为它知道名称与另一个包冲突。
ln -s /usr/local/Cellar/ipython@5/5.5.0_1/bin/ipython /usr/local/bin/ipython2
会解决这个问题,让您只需从shell提示符
ipython2
对我来说,因为我非常认真地使用ipython for 2.7,所以我也运行了以下命令。
ln -s /usr/local/Cellar/ipython/6.2.1/bin/ipython /usr/local/bin/ipython3
rm -f /usr/local/bin/ipython
ln -s /usr/local/bin/ipython2 /usr/local/bin/ipython
答案 10 :(得分:0)
对我来说,在 Windows 10 上,我的 ipython.exe 与我的 python 不匹配。 我知道这是因为 ipython 说
----> 3 from pywinauto import handleprops
4 from pywinauto import timings
5 from pywinauto.application import Application
ModuleNotFoundError: No module named 'pywinauto'
但是,当我使用 > python
这里是不匹配。
ipython 信息
Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:21:23) [MSC v.1916 32 bit (Intel)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.9.0 -- An enhanced Interactive Python. Type '?' for help.
[DOT DOT DOT]
蟒蛇信息
Python 3.9.2 (tags/v3.9.2:1a79785, Feb 19 2021, 13:44:55) [MSC v.1928 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
这是我的解决方法。
我更改了对 Python\...\Scripts
的引用,这是 ipython.exe 的隐藏位置
C:\Users\joeco\AppData\Roaming\Python\Python38\Scripts
C:\Users\joeco\AppData\Roaming\Python\Python39\Scripts\
结果
from pywinauto import handleprops
成功答案 11 :(得分:0)
我安装了 python2.7、python3.6 和 python3.8
sahil@rubeus:~$ ls -ls /usr/bin/python*
0 lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python -> python2.7
0 lrwxrwxrwx 1 root root 9 Apr 16 2018 /usr/bin/python2 -> python2.7
3548 -rwxr-xr-x 1 root root 3633000 Feb 27 20:40 /usr/bin/python2.7
0 lrwxrwxrwx 1 root root 9 Oct 25 2018 /usr/bin/python3 -> python3.6
4424 -rwxr-xr-x 2 root root 4526456 Jan 26 21:03 /usr/bin/python3.6
5016 -rwxr-xr-x 1 root root 5134032 Jun 3 23:23 /usr/bin/python3.8
我在这个位置有 ipython 文件
sahil@rubeus:~$ which ipython
/home/sahil/.local/bin/ipython
它有以下内容
#!/usr/bin/python2
# -*- coding: utf-8 -*-
import re
import sys
from IPython import start_ipython
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(start_ipython())
所以我只是在同一位置制作了两个名为 ipython3.6 和 ipython3.8 的文件副本,并更新了第一行以指向特定的 Python 版本,/usr/bin/python3.6
和 /usr/bin/python3.8
案例。
所以现在有 3 个文件,每个文件都指向特定的 python 版本
sahil@rubeus:~$ ls ~/.local/bin/ipython*
/home/sahil/.local/bin/ipython
/home/sahil/.local/bin/ipython3.6
/home/sahil/.local/bin/ipython3.8
现在,当我需要启动 python2 时,我只需从终端运行 ipython 并以同样的方式在 python3.8 中运行 ipython,我运行 ipython3.8
sahil@rubeus:~$ ipython3.8
Python 3.8.11 (default, Jul 3 2021, 17:53:42)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.25.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]:
注意:您可能需要使用命令 python3.6 -m pip install IPython
或 python3.8 -m pip install IPython
为特定的 Python 版本安装 ipython。不知道是用python安装的还是我单独安装的。