我有以下Flask代码,文件__init__.py:
from flask import Flask
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from flask_sqlalchemy_session import flask_scoped_session
from . import configmodule
app = Flask(__name__)
engine = create_engine(configmodule.DevelopmentConfig.SQLALCHEMY_DATABASE_URI) # <--- THIS WORKS
session_factory = sessionmaker(bind=engine)
session = flask_scoped_session(session_factory, app)
app.config.from_object('configmodule.DevelopmentConfig') # <--- THIS FAILS IN Python 3
...
Run Code Online (Sandbox Code Playgroud)
文件configmodule.py与上面的__init__.py位于同一目录中.
在使用python 3.5.2运行它之后,我得到:
werkzeug.utils.ImportStringError: import_string() failed for 'configmodule.DevelopmentConfig'. Possible reasons are:
- missing __init__.py in a package;
- package or module path not included in sys.path;
- duplicated package or module name taking …Run Code Online (Sandbox Code Playgroud) 假设我定义了A类:
>>> class A:
... a = 1
... class SubA:
... sub_a = { 'a': 1, 'b': 1}
Run Code Online (Sandbox Code Playgroud)
然后我定义继承自A的B类:
>>> class B(A):
... pass
Run Code Online (Sandbox Code Playgroud)
现在,检查__dict__ A和__dict__ B的:
>>> A.__dict__
{'a': 1, '__module__': '__builtin__', '__doc__': None, 'SubA': <class __builtin_ _.SubA at 0x02CAA3E8>}
>>> B.__dict__
{'__module__': '__builtin__', '__doc__': None}
Run Code Online (Sandbox Code Playgroud)
不知何故,B .__ dict__既不包含'a'也不包含'SubA'.现在如果我们这样做:
>>> A.a
1
>>> B.a
1
>>> A.SubA
<class __builtin__.SubA at 0x02CAA3E8>
>>> B.SubA
<class __builtin__.SubA at 0x02CAA3E8>
Run Code Online (Sandbox Code Playgroud)
第一个问题:为什么B .__ …
我的原始问题是我正在尝试执行以下操作:
def submit_decoder_process(decoder, input_line):
decoder.process_line(input_line)
return decoder
self.pool = Pool(processes=num_of_processes)
self.pool.apply_async(submit_decoder_process, [decoder, input_line]).get()
Run Code Online (Sandbox Code Playgroud)
解码器在这里有点介绍,但重要的是解码器是一个用调用setParseAction()的PyParsing表达式初始化的对象.这会使多处理使用的pickle失败,这反过来又失败了上面的代码.
现在,这是我已经孤立和简化的pickle/PyParsing问题.由于pickle失败,以下代码会产生错误消息.
import pickle
from pyparsing import *
def my_pa_func():
pass
pickle.dumps(Word(nums).setParseAction(my_pa_func))
Run Code Online (Sandbox Code Playgroud)
错误信息:
pickle.PicklingError: Can't pickle <function wrapper at 0x00000000026534A8>: it's not found as pyparsing.wrapper
Run Code Online (Sandbox Code Playgroud)
现在,如果你删除调用.setParseAction(my_pa_func),它将没有问题:
pickle.dumps(Word(nums))
Run Code Online (Sandbox Code Playgroud)
我怎么能绕过它呢?多处理使用泡菜,所以我猜不出它.据说使用dill的pathos包不够成熟,至少,我在Windows-64bit上安装它时遇到问题.我真的在这里摸不着头脑.
python pickle pyparsing python-multithreading python-multiprocessing
当我在下拉菜单中选择一个新值(3)时,我看到HTML仍旧旧值(10)为"已选中".
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10" selected="selected">10</option>
Run Code Online (Sandbox Code Playgroud)
编辑1:克隆表单时问题就出现了.克隆的副本将重置其选定的选项.有没有办法克隆选定的值?
我对以下用于向工厂注册 UVM 测试的 SystemVerilog 构造感到困惑:
class random_test extends uvm_test;
`uvm_component_utils(random_test);
...
function new (...
Run Code Online (Sandbox Code Playgroud)
这里我们有一个类的定义random_test,在定义内部我们调用一个方法,而它的参数是正在定义的类。
这是我的问题:
`uvm_component_utils甚至在 random_test 类构造任何对象之前是否在时间 0 调用?`uvm_component_utils在该类定义中传递一个类?我一直在尝试以下方法:
from multiprocessing import Pool
def f(some_list):
some_list.append(4)
print 'Child process: new list = ' + str(some_list)
return True
if __name__ == '__main__':
my_list = [1, 2, 3]
pool = Pool(processes=4)
result = pool.apply_async(f, [my_list])
result.get()
print 'Parent process: new list = ' + str(my_list)
Run Code Online (Sandbox Code Playgroud)
我得到的是:
Child process: new list = [1, 2, 3, 4]
Parent process: new list = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
因此,这意味着my_list是按值传递的,因为它没有突变。那么,是否将规则传递给另一个进程时确实按值传递规则呢?谢谢。
python pass-by-reference pass-by-value threadpool python-multiprocessing
我试图将一个canvas元素放入一个没有填充的表格单元格中,即我想在画布和单元格的顶部/底部之间没有边距.因此,我将行高定义为20px,将画布高度定义为20px.我也使用填充:0px样式.但是,我从顶部和左边都没有填充,我仍然在底部填充填充.事实上,看起来表格单元格更高,以适应不希望的边缘.我该如何解决?
另外,在HTML和CSS中定义画布宽度和高度有什么区别?一个会超越另一个吗?
下面是我的HTML代码.谢谢.
<!doctype html>
<html lang="en">
<html>
<head>
<meta charset="utf-8">
<title>experiment</title>
<body>
<script>
$(function() {
var canvas = document.getElementById('my_canvas');
var ctx = canvas.getContext('2d');
ctx.fillRect(0,0,20,20);
$("#my_table > tbody > tr:eq(0) > td:eq(0)").append($("#my_canvas"));
})
</script>
</head>
<style media="screen" type="text/css">
.my_cell {height:20px; width:100px; padding:0}
.my_canvas {height:20px; width:20px}
</style>
<table id="my_table" border="1" cellspacing="0" cellpinserting="0">
<tbody>
<tr><td class="my_cell"></td></tr>
</tbody>
</table>
<canvas id="my_canvas" class="my_canvas" width="20" height="20"></canvas>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) python ×4
class ×2
javascript ×2
canvas ×1
css ×1
css-tables ×1
factory ×1
flask ×1
forms ×1
html ×1
html-select ×1
inheritance ×1
oop ×1
pickle ×1
pyparsing ×1
python-3.x ×1
threadpool ×1
uvm ×1