相关疑难解决方法(0)

如何使用pylab远程保存数字?

我正试图用命令在远程计算机上生成一个数字pylab.savefig.但我得到了这样的错误:

Unable to access the X Display, is $DISPLAY set properly?
Run Code Online (Sandbox Code Playgroud)

如何正确保存图形?

python matplotlib figure

71
推荐指数
1
解决办法
3万
查看次数

%matplotlib line magic在Python脚本中导致SyntaxError

我尝试在Spyder上运行以下代码(Python 2.7.11):

# -*- coding: utf-8 -*-

import numpy as np
import pandas as pd

%matplotlib inline

import matplotlib.pyplot as plt
import matplotlib.cm as cm

import tensorflow as tf

# settings
LEARNING_RATE = 1e-4
# set to 20000 on local environment to get 0.99 accuracy
TRAINING_ITERATIONS = 2000        

DROPOUT = 0.5
BATCH_SIZE = 50

# set to 0 to train on all available data
VALIDATION_SIZE = 2000

# image number to output
IMAGE_TO_DISPLAY = 10
Run Code Online (Sandbox Code Playgroud)

但我得到了这个错误:

line 10
    %matplotlib inline …
Run Code Online (Sandbox Code Playgroud)

python matplotlib ipython spyder

43
推荐指数
5
解决办法
9万
查看次数

告诉Python是否处于交互模式

在Python脚本中,有没有办法判断解释器是否处于交互模式?这将非常有用,例如,当您运行交互式Python会话并导入模块时,会执行稍微不同的代码(例如,关闭日志记录).

我已经看过python是否处于-i模式并尝试了那里的代码,但是,如果使用-i标志调用Python,则该函数仅返回true,而当用于调用交互模式的命令python没有参数时.

我的意思是这样的:

if __name__=="__main__":
    #do stuff
elif __pythonIsInteractive__:
    #do other stuff
else:
    exit()
Run Code Online (Sandbox Code Playgroud)

python interactive python-2.x python-2.5

41
推荐指数
5
解决办法
1万
查看次数

关闭pyplot窗口

最终编辑:

我在关闭pyplot窗口的主题上发现的是它很可能不应该使用pyplot来完成.SRK提供了一个很好的例子,说明如何处理将在下面的答案中更新的情节.此外,我偶然发现了如何将pyplot图放入Tkinter窗口,而且Tkinter比pyplot更擅长打开和关闭窗口.这里是怎样把一个pyplot情节变成Tk的窗口,这是一个很好的例子.

/最终编辑

我希望能够显示几个图,然后能够从一些代码输入中单独关闭(从屏幕中删除),但我不知道执行此操作的代码输入.

以下是我到目前为止所尝试的内容.我已经玩过了show和close命令的位置,但是我从中获得的唯一真实结果是没有出现一个或另一个情节,但是我无法从屏幕上删除一个情节.我一直在插入raw_input()来创建暂停.

编辑:这些情节是从Tkinter gui调用的,如果从这个方向有更好的方法,我会很高兴听到它.

任何意见都将不胜感激,谢谢.

import matplotlib.pyplot as plt

a = range(0,10)
b = range(0,20,2)
c = range(0,30,3)
d = range(0,40,4)

plot1 = plt.figure()
plt.plot(a,b, 'r-o')

plt.show()

plt.close()

plot2 = plt.figure()
plt.plot(c,d, 'b-o')

plt.show()
plt.close() 
Run Code Online (Sandbox Code Playgroud)

编辑代码:这也不起作用.

plot1 = plt.figure(1)
plt.plot(a,b, 'r-o')

plot2 = plt.figure(2)
plt.plot(c,d, 'b-o')
#plt.close(1)
#this will prevent plot1 from being displayed
plt.show()
plt.close(1)  # or ('all') or (plot1)
Run Code Online (Sandbox Code Playgroud)

python tkinter matplotlib

36
推荐指数
2
解决办法
9万
查看次数

如果在IPython中__name__ =='__ main__'

我有Python脚本使用这个if __name__ == '__main__'技巧,只有在脚本作为脚本调用时才运行某些代码,而不是在将脚本加载到交互式解释器时运行.但是,当我使用该%edit命令从IPython编辑这些脚本时,IPython显然设置__name__'__main__',因此每次退出编辑会话时代码都会运行.从IPython编辑模块时,是否有一种很好的方法可以使代码不运行?

python ipython

21
推荐指数
3
解决办法
5934
查看次数

Python检查jupyter笔记本或实验室是否正在运行

我有一个模块(tqdm),我需要导入不同,这取决于我是.ipynb在jupyter笔记本或jupyter实验室环境中运行我.有没有办法在python中确定这个?例如:

if <jupyter notebook>:
    from tqdm import tqdm_notebook as tqdm 
elif <jupyter lab>:
    from tqdm import tqdm
else:
    print("Not in jupyter environment.")
Run Code Online (Sandbox Code Playgroud)

python-3.x jupyter-notebook jupyter-lab

8
推荐指数
1
解决办法
800
查看次数

检查模块是否在Jupyter中运行

我正在寻找一种可靠的方法来确定我的模块是从Jupyter笔记本中加载/运行,还是更具体地说,如果ipywidgets可用的话.

这不是其他问题的重复:我发现的其他一切都没有可靠的解决方案,或者(更常见的情况)他们使用Python中常见的"只是尝试它并且轻轻地失败"的方法.就我而言,我正在尝试编写以下逻辑:

if in_jupyter():
    from tqdm import tqdm_notebook as tqdm
else:
    from tqdm import tqdm
Run Code Online (Sandbox Code Playgroud)

我不认为"尝试和失败"是一个合适的解决方案,因为我不想产生任何输出.

到目前为止,我找到的最接近解决方案的是:

from IPython import get_ipython
get_ipython().config['IPKernelApp']['parent_appname'] == 'ipython-notebook'
Run Code Online (Sandbox Code Playgroud)

但是这个配置属性看起来很空traitlets.config.loader.LazyConfigValue(.get_value(None)只是一个空字符串).

python jupyter jupyter-notebook

6
推荐指数
2
解决办法
1330
查看次数

确定代码是否在 Databricks 或 IDE (PyCharm) 上运行

我正在构建一个 Python 包,数据科学家可以使用该包来管理他们的 MLOps 生命周期。现在,这个包可以在本地(通常在 PyCharm 上)或 Databricks 上使用。

我希望包的某些功能取决于它的运行位置,即,如果它被 Databricks 笔记本调用,我希望它做一些不同的事情,如果它在本地运行,我希望它做一些完全不同的事情。

有什么方法可以确定它是从哪里调用的吗?

我有点怀疑我们是否可以使用类似下面的内容来检查您的代码是否在笔记本上运行,或者因为这将是一个将存储在您的 Databricks 环境中的包,
我如何检查代码是否在笔记本上运行在IPython笔记本中执行?

python pycharm databricks

4
推荐指数
1
解决办法
653
查看次数

不同python环境中的tqdm变化

我正在使用tqdm在 python 中显示进度条的包。

tqdm 还有一个用于 Jupyter 笔记本 ( tqdm_notebook())的小部件,允许一个漂亮的“网络式”进度条。

我的问题是我在code.py文件中有一个 tqdm 进度条,我将它导入到 jupyter notebook 中。

code.py从常规 python 环境(即Ipython, IDLE, shell)运行时,我希望 tqdm 以正常形式运行:

from tqdm import tqdm
a = 0
for i in tqdm(range(2000)):
   a+=i
Run Code Online (Sandbox Code Playgroud)

但是当我导入code.pyJupyter 时,我希望它使用tqdm_notebook()

from tqdm import tqdm_notebook as tqdm
a = 0
for i in tqdm(range(2000)):
   a+=i
Run Code Online (Sandbox Code Playgroud)

如何让python区分环境?

我发现这篇文章建议检查get_ipython().__class__.__name__'ipykernel' in sys.modules 但它没有区分笔记本和其他 Ipython shell(例如在 Spyder 或 IDLE …

python ipython spyder jupyter-notebook tqdm

3
推荐指数
1
解决办法
804
查看次数

确定我们是否在IPython笔记本会话中

如果从IPython笔记本调用它,我希望我的函数做一件事,如果从控制台或库代码调用它,我想要另一件事.特别是我正在制作一个具有以下所需行为的进度条:

  • Notebook:立即返回一个小部件
  • 控制台:阻止和转储信息sys.stdout

是否有一个标志,我可以检查以确定用户是否从笔记本电脑或其他方式调用我的功能?

ipython ipython-notebook

1
推荐指数
1
解决办法
495
查看次数