我正在研究 IPython (Spyder) 中的命名空间,并尝试看看如果我dict.clear() locals(). 所以,事不宜迟:
Python 3.8.5 (default, Aug 5 2020, 09:44:06) [MSC v.1916 64 bit (AMD64)]
Type "copyright", "credits" or "license" for more information.
IPython 7.19.0 -- An enhanced Interactive Python.
In [1]: locals().clear()
In [2]: locals
Traceback (most recent call last):
File "<ipython-input-2-f1c14746c80d>", line 1, in <module>
locals
File "C:\Users\sayan\Anaconda3\envs\tfgpu_py38\lib\site-packages\IPython\core\displayhook.py", line 263, in __call__
self.update_user_ns(result)
File "C:\Users\sayan\Anaconda3\envs\tfgpu_py38\lib\site-packages\IPython\core\displayhook.py", line 201, in update_user_ns
if self.cache_size and result is not self.shell.user_ns['_oh']:
KeyError: '_oh'
In [3]: dict
Traceback (most …Run Code Online (Sandbox Code Playgroud) 我启动了 ipython 会话并尝试加载数据集。
我正在运行
df = Catalog.load("test_dataset")
面临以下错误
NameError: name 'catalog' is not defined
我也尝试过 %reload_kedro 但出现以下错误
UsageError: Line magic function `%reload_kedro` not found.
甚至也无法加载上下文。我正在从 Docker 容器运行 kedro 环境。我不确定我哪里出错了。
试图弄清楚 IPython(v7.12.0,在 Amazon SageMaker 上)上的这种行为是否是一个错误,或者我缺少一些正确的方法/记录的约束...
假设我有一些 Python 变量,例如:
NODE_VER = "v16.14.2"
NODE_DISTRO = "linux-x64"
Run Code Online (Sandbox Code Playgroud)
这些命令在笔记本中都可以正常工作:
!echo $PATH
# Shows **contents of system path**
!echo /usr/local/lib/nodejs/node-{NODE_VER}-{NODE_DISTRO}/bin:
# Shows /usr/local/lib/nodejs/node-v16.14.2-linux-x64/bin
Run Code Online (Sandbox Code Playgroud)
...但这并不:
!echo /usr/local/lib/nodejs/node-{NODE_VER}-{NODE_DISTRO}/bin:$PATH
# Shows:
# /usr/local/lib/nodejs/node-{NODE_VER}-{NODE_DISTRO}/bin:**contents of system path**
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几种组合,例如使用$NODE_VER语法代替(它生成node--/代替node-{NODE_VER}-{NODE_DISTRO}/,但似乎使用shell变量(PATH)和Python变量(NODE_VER/NODE_DISTRO)的任何组合都会失败。
谁能帮助我理解为什么以及如何解决它?
正如您可能已经猜到的那样,我的最终目标是实际将此文件夹添加到 PATH 而不是仅仅回显它 - 类似于:
!export PATH=/usr/local/lib/nodejs/node-{NODE_VER}-{NODE_DISTRO}/bin:$PATH
Run Code Online (Sandbox Code Playgroud) 我使用 python 3.10.1,通过 ipython (7.31.0,调用相同的 python 3.10.1)交互进行探索,然后在脚本准备好后直接通过 python 进行探索。
我的代码中有一个错误,我将其简化为两者之间的以下行为差异:
[Python]
In [1]: any(map(bool, ("")))
Out[1]: <map at 0x7f7f2d6061d0>
Run Code Online (Sandbox Code Playgroud)
[CPython]
>>> any(map(bool, ("")))
False
Run Code Online (Sandbox Code Playgroud)
因为 IPython 中的输出map对象是真实的,所以当在语句中使用代码时,if两个程序将给出相反的结果。我想知道是什么导致了这种差异,是否可以采取任何措施来修复它,以及是否存在其他类似的错误(功能?)我应该注意。
我有一个基本的模型:
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
state = USStateField()
Run Code Online (Sandbox Code Playgroud)
我启动了一个iPython会话:
$ python manage.py shell
>>> from app.models import Person
Run Code Online (Sandbox Code Playgroud)
如何在iPython会话中添加此模型方法?
>>> def is_midwestern(self):
... "Returns True if this person is from the Midwest."
... return self.state in ('IL', 'WI', 'MI', 'IN', 'OH', 'IA', 'MO')
>>> person = Person.objects.filter(last_name='Franklin')
>>> person.is_midwestern
True
Run Code Online (Sandbox Code Playgroud)
我希望能够测试这些模型方法,而无需将该方法添加到models.py文件,然后重新启动iPython shell会话.
我似乎做错了,因为当我在交互式会话中添加新的模型方法时,它似乎没有像在文件中定义模型方法时那样链接到类.
因此,如果我创建了上面的模型方法并尝试使用它.例如'>>> person = Person.objects.filter(last_name ='Franklin')'is_midwestern'`
>>> person.is_midwestern
'Person' object has no attribute
对于我的生活,我无法matplotlib在ipython不活动状态下显示图表.
我尝试了两种方法 - 每一次,我得到相同的结果:
In [10]: plot([1,2,3])
Out[10]: [<matplotlib.lines.Line2D at 0x104e9ca50>]
Run Code Online (Sandbox Code Playgroud)
以下是我到目前为止尝试的两种方法:使用文档作为指导,我尝试了两种不同的方法:
第一:
ipython --pylab
plot([1,2,3])
xlabel('hi mom')
In [3]: plot([1,2,3])
Out[3]: [<matplotlib.lines.Line2D at 0x107e369d0>]
Run Code Online (Sandbox Code Playgroud)
第二:
ipython
import numpy
import pylab
In [5]: pylab.plot([1,2,3])
Out[5]: [<matplotlib.lines.Line2D at 0x104ca7b90>]
Run Code Online (Sandbox Code Playgroud)
如何显示情节?
我有一个matplotlib的奇怪问题,我似乎无法搞清楚.当使用带有pylab标志的ipython笔记本时,ipython notebook --pylab inline我有一行代码,用于生成带有matplotlib的颜色条:
im = ax.imshow(df, vmin=vmin, vmax=vmax)
Run Code Online (Sandbox Code Playgroud)
代码工作正常,我得到一个很好的颜色栏.当我将此代码作为python文件运行时,我收到错误NameError: name 'ax' is not defined.我明白ipython notebook --pylab inline自动将一堆东西导入到笔记本中,但我无法弄清楚我需要导入什么才能解决问题.print type(ax)得到:
<class 'matplotlib.axes.AxesSubplot'>
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出为什么我的代码在ipython中工作但不是普通的python文件?提前致谢.
有没有办法从默认的'%'更改IPython魔术函数前缀?我在ipython_config.py中找不到任何选项
由于我使用的是vim和ghci,我(不知何故)训练自己将':'作为命令前缀.
当我想调用魔术函数并自动为每个IPython魔术函数调用前缀':'时,这非常烦人,例如:cd,:ed和:load
之前已经回答过在IPython Notebook中显示LaTeX的行,但是在IPython Notebook中绘图时,你如何用LaTeX字符串标记绘图的轴?
我正在尝试使用以下命令从Mac OS 10.8.3中的终端启动Enthought Canopy的ipython:
/Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-x86_64/Canopy.app/Contents/bin/ipython
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
/Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-x86_64/Canopy.app/Contents/bin/ipython: /Library/Frameworks/Python.framework/Versions/7.1/Resources/Python.app/Content: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)
这个(7.1)框架之前已经安装但很久以前被删除了,所以我无法弄清楚Canopy的IPython从哪里获得这个链接.我也检查了我的./ipython/profile_default目录,但这没有帮助.
知道如何从终端启动ipython吗?
谢谢!
ipython ×10
python ×6
matplotlib ×3
numpy ×2
any ×1
django ×1
enthought ×1
jupyter-lab ×1
kedro ×1
latex ×1
namespaces ×1
python-3.x ×1
shadowing ×1