据我所知,%debug magic可以在一个单元格内进行调试.
但是,我有跨多个单元格的函数调用.
例如,
In[1]: def fun1(a)
def fun2(b)
# I want to set a breakpoint for the following line #
return do_some_thing_about(b)
return fun2(a)
In[2]: import multiprocessing as mp
pool=mp.Pool(processes=2)
results=pool.map(fun1, 1.0)
pool.close()
pool.join
Run Code Online (Sandbox Code Playgroud)
我尝试了什么:
我试着设置%debug在cell-1的第一行.但它甚至在执行cell-2之前立即进入调试模式.
我试图%debug在代码之前添加行return do_some_thing_about(b).但随后代码永远运行,永不停止.
在ipython笔记本中设置断点的正确方法是什么?
我已成功安装了Tensorflow绑定和python.但是当我尝试导入Tensorflow时,我得到了以下错误.
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found (required by /usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow.so)
Run Code Online (Sandbox Code Playgroud)
我试图将GLIBC_2.15更新为2.17,但没有运气.
从SQLite3数据库中删除记录时遇到问题:
conn = sqlite3.connect('databaza.db')
c = conn.cursor()
data3 = str(input('Please enter name: '))
mydata = c.execute('DELETE FROM Zoznam WHERE Name=?', (data3,))
conn.commit()
c.close
Run Code Online (Sandbox Code Playgroud)
一切都好,没有错误,但删除功能不起作用!
有没有人有想法?
我已经有了一个工作程序,但唯一不起作用的是decrypt_file()我的功能.我仍然可以从文件中复制加密文本并将其放入我的decrypt()函数中并使其工作,但是当我尝试使用我应该使用的方便decrypt_file()函数时,它会抛出错误.现在我知道99.999%确定我encrypt()和decrypt()函数都没问题,但是当我读取并编码抛出错误的文本文件时,会有字节和字符串转换的内容; 我只是找不到挂断.请帮忙!
我的计划:
from Crypto import Random
from Crypto.Cipher import AES
def encrypt(message, key=None, key_size=256):
def pad(s):
x = AES.block_size - len(s) % AES.block_size
return s + ((bytes([x])) * x)
padded_message = pad(message)
if key is None:
key = Random.new().read(key_size // 8)
iv = Random.new().read(AES.block_size)
cipher = AES.new(key, AES.MODE_CBC, iv)
return iv + cipher.encrypt(padded_message)
def decrypt(ciphertext, key):
unpad = lambda s: s[:-s[-1]]
iv = ciphertext[:AES.block_size]
cipher = AES.new(key, AES.MODE_CBC, iv) …Run Code Online (Sandbox Code Playgroud) 我正在3.5使用PyCharm Community Edition 2016.2.2 ; Build #PC-162.1812.1, built on August 16, 2016 ; JRE: 1.8.0_76-release-b216 x86 ; JVM: OpenJDK Server VM by JetBrains s.r.oWindows 10上的PyCharm()调试Python()程序.
问题:当在某些断点处停止时,调试器窗口停留在"收集数据",最终超时.(无法显示帧变量)
要显示的数据既不特殊,也不特别大.它以某种方式可用于PyCharm,因为所述数据的某些值的条件断点工作正常(程序中断) - 看起来收集它仅用于显示(与操作目的相反)的过程失败.
当我进入我的断点周围的函数时,它的数据显示正确.当我向上移动堆栈(到调用函数,我从那里退出的那个以及我最初想要断点的那个)时 - 我再次陷入"收集数据"超时.
至少自2005年以来,出现了许多同样问题.一些是固定的,一些不是.修复通常是对最新版本的更新(我有).
我是否可以采取一般方向来解决或解决这一系列问题?
编辑:一年后,问题仍然存在,并且在bug被提出之后仍然没有来自开发者/支持者的反应.
编辑2018年4月:看起来问题在2018.1版本中得到解决,下面的代码print在线上设置断点时挂起现在可以工作(我可以看到变量):
import threading
def worker():
a = 3
print('hello')
threading.Thread(target=worker).start()
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用py2app将我编写的简短Python程序转换为OS X的易于分发的应用程序文件.我是通过py2app教程完成的,但当我点击我的应用程序文件时,会显示以下对话框:
找不到Python运行时.您可能需要安装Python的框架版本,或者在此应用程序的Info.plist文件中编辑PyRuntimeLocations数组.这是我第一次构建一个软件,为任何明显的失误道歉.
我不确定这是否有用,但从该对话框中单击"打开控制台"会显示以下错误:
LaunchServices: Could not store lsd-identifiers file at /private/var/db/lsd/com.apple.lsdschemes.plist launchservicesd[83]: SecTaskLoadEntitlements failed error=22appleeventsd[53]: SecTaskLoadEntitlements failed error=22 11/27/16 7:29:19.787 PMsharedfilelistd[307]: SecTaskLoadEntitlements failed error=22我知道如果py2app使用Python的"系统"版本来生成应用程序,它将不会在分发中包含该Python.但是,进入$终端中的哪个python将我引导到我的anaconda安装,所以这似乎不是问题.
这是我第一次尝试创建一个软件,所以要提前为任何明显的失误道歉.我将非常感谢任何帮助,因为我一整天都在喋喋不休.
我正在使用Tkinter在这里创建一个登录屏幕.目前,底部的"保持登录状态"按钮是多余的,并且将保持不变.我想要做的是使用此代码:
from tkinter import *
root = Tk()
label_1 = Label(root, text="Username")
label_2 = Label(root, text="Password")
entry_1 = Entry(root)
entry_2 = Entry(root)
label_1.grid(row=0, sticky=E)
label_2.grid(row=1, sticky=E)
entry_1.grid(row=0, column=1)
entry_2.grid(row=1, column=1)
checkbox = Checkbutton(root, text="Keep me logged in")
checkbox.grid(columnspan=2)
Run Code Online (Sandbox Code Playgroud)
和这个结合:
username = "john"
input("Username: ")
while not username:
if username == "john":
print("Welcome")
else:
print("User not found")
password = "password"
while not password:
input("password: ")
if password == "password":
print("Logged in")
else:
print("Incorrect password")
Run Code Online (Sandbox Code Playgroud)
然而,登录代码不起作用,然后我不知道从哪里开始将两者相互集成.我是python的新手,对Tkinter更是如此,但我非常渴望得到这个帮助!
提前致谢!
我有以下代码:
# Declare the layers
inp1 = Input(shape=input_shape, name="input1")
inp2 = Input(shape=input_shape, name="input2")
# 128 -> 64
conv1_inp1 = Conv2D(start_neurons * 1, 3, activation="relu", padding="same")(inp1)
conv1_inp2 = Conv2D(start_neurons * 1, 3, activation="relu", padding="same")(inp2)
conv1 = Concatenate()([conv1_inp1, conv1_inp2])
conv1 = Conv2D(start_neurons * 1, 3, activation="relu", padding="same")(conv1)
conv1 = MaxPooling2D((2, 2))(conv1)
conv1 = Dropout(0.25)(conv1)
# 64 -> 32
conv2 = Conv2D(start_neurons * 2, (3, 3), activation="relu", padding="same")(conv1)
conv2 = Conv2D(start_neurons * 2, (3, 3), activation="relu", padding="same")(conv2)
pool2 = MaxPooling2D((2, 2))(conv2)
pool2 = …Run Code Online (Sandbox Code Playgroud) 我不确定为什么会收到此类型错误:
文件“C:/Users/PycharmProjects/REST/app.py”,第30行,在valid_book_object中if(“isbn”在书中,“名称”在书中,“价格”在书中):TypeError:类型为“NoneType”的参数不可迭代 127.0.0.1 - - [12/Nov/2018 14:22:29] "POST /books HTTP/1.1" 500 -
代码:
from flask import Flask, jsonify, request
from test import *
app=Flask(__name__)
books=[
{'name': 'M',
'price': 6.75,
'isbn':123
},
{'name': 'G',
'price': 7.75,
'isbn':456
},
]
#GET /store
@app.route('/books') #first endpoint
def get_books():
return jsonify({'books': books})
# POST /books
#{'name': 'F',
#'price': 7.00,
#'isbn': 789
#},
def valid_book_object(book):
if ("isbn" in book and "name" in book and "price" in book):
return True
print("true")
else:
return False
print("false")
@app.route('/books', …Run Code Online (Sandbox Code Playgroud) 在 python 中,我用 PIL 加载了一个 gif。我提取第一帧,修改它,然后放回去。我用以下代码保存修改后的gif
imgs[0].save('C:\\etc\\test.gif',
save_all=True,
append_images=imgs[1:],
duration=10,
loop=0)
Run Code Online (Sandbox Code Playgroud)
其中 imgs 是组成 gif 的图像数组,持续时间是帧之间的延迟(以毫秒为单位)。我想让持续时间值与原始 gif 相同,但我不确定如何提取 gif 的总持续时间或每秒显示的帧数。
据我所知,gifs 的头文件不提供任何 fps 信息。
有谁知道我如何获得正确的持续时间值?
提前致谢
编辑:要求的 gif 示例:

从这里取回。
我仍然是python中的新生成器.我自己尝试了一个并尝试了一些非常简单的事情:
def fib(a):
... if a==0 or a==1:return 1
... yield fib(a-1)+fib(a-2)
print(list(fib(5))
Run Code Online (Sandbox Code Playgroud)
这段代码给了我这个错误:
TypeError: unsupported operand type(s) for +: 'generator' and 'generator'
Run Code Online (Sandbox Code Playgroud)
不能以这种方式使用发电机吗?
python ×10
python-3.x ×5
pycharm ×2
aes ×1
animated-gif ×1
debugging ×1
encryption ×1
fibonacci ×1
file ×1
generator ×1
gif ×1
glibc ×1
input ×1
ipython ×1
keras ×1
login ×1
pdb ×1
py2app ×1
pycrypto ×1
python-2.7 ×1
python-3.5 ×1
screen ×1
sqlite ×1
tensorflow ×1
tkinter ×1
ubuntu ×1