我想使用apache httpclient与webservices进行交互.具体来说,我正在使用 http://mirror.arcor-online.net/www.apache.org//httpcomponents/httpclient/binary/httpcomponents-client-4.3-bin.zip
所以在MATLAB中我将所有包含的jar加载到javaclasspath中然后我可以创建到client-instance来使用:
在MATLAB 2007b和2011b中(这些是我的版本):
client = org.apache.http.impl.client.HttpClients.createDefault()
client =
org.apache.http.impl.client.InternalHttpClient@1e89831
Run Code Online (Sandbox Code Playgroud)
在2012b:
>> client = org.apache.http.impl.client.HttpClients.createDefault()
Java exception occurred:
java.lang.NoSuchFieldError: INSTANCE
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:52)
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:56)
at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.<clinit>(DefaultHttpRequestWriterFactory.java:46)
at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:72)
at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<init>(ManagedHttpClientConnectionFactory.java:84)
at org.apache.http.impl.conn.ManagedHttpClientConnectionFactory.<clinit>(ManagedHttpClientConnectionFactory.java:59)
at
org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.<init>(PoolingHttpClientConnectionManager.java:487)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:147)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:136)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:112)
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:710)
at org.apache.http.impl.client.HttpClients.createDefault(HttpClients.java:58)
>> client = org.apache.http.impl.client.HttpClients.createDefault()
Java exception occurred:
java.lang.NoClassDefFoundError: Could not initialize class org.apache.http.impl.conn.ManagedHttpClientConnectionFactory
at
org.apache.http.impl.conn.PoolingHttpClientConnectionManager$InternalConnectionFactory.<init>(PoolingHttpClientConnectionManager.java:487)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:147)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:136)
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>(PoolingHttpClientConnectionManager.java:112)
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:710)
at org.apache.http.impl.client.HttpClients.createDefault(HttpClients.java:58)
Run Code Online (Sandbox Code Playgroud)
这真是让我烦恼,因为2011b和2012b中的代码是相同的,所有jar都被加载,并且MATLAB中的两个Java版本也是相同的(1.6.0_17-b04).所以我真的不明白为什么课程在2012b中变得无法加载.
我尝试使用matlab类加载器 - 但这让我更加困惑:
>> jloader = com.mathworks.jmi.ClassLoaderManager.getClassLoaderManager();
>> …Run Code Online (Sandbox Code Playgroud) 我正在尝试将一个实体建模为一个或多个一对多关系,以便当其last_modified属性更新时
我整理了以下最小示例:
class Config(Base):
__tablename__ = 'config'
ID = Column('ID', Integer, primary_key=True)
name = Column('name', String)
last_modified = Column('last_modified', DateTime, default=now, onupdate=now)
params = relationship('ConfigParam', backref='config')
class ConfigParam(Base):
__tablename__ = 'config_params'
ID = Column('ID', Integer, primary_key=True)
ConfigID = Column('ConfigID', Integer, ForeignKey('config.ID'), nullable=False)
key = Column('key', String)
value = Column('value', Float)
@event.listens_for(Config.params, 'append')
@event.listens_for(Config.params, 'remove')
def receive_append_or_remove(target, value, initiator):
target.last_modified = now()
@event.listens_for(ConfigParam.key, 'set')
@event.listens_for(ConfigParam.value, 'set')
def receive_attr_change(target, value, oldvalue, initiator):
if target.config:
# don't act …Run Code Online (Sandbox Code Playgroud) 我无法获取小部件的实际背景颜色。在我的特殊情况下,我在使用 QTabWidget 中的小部件时遇到问题。
这是在Windows7上。因此,经典的小部件有一些灰色背景,而选项卡内的小部件通常用白色背景绘制。
我试过:
def bgcolor(widget):
color = widget.palette().color(widget.backgroundRole()) # version 1
color = widget.palette().color(QtGui.QPalette.Background) # version 2
rgba = color.red(), color.green(), color.blue(), color.alpha()
return rgba
Run Code Online (Sandbox Code Playgroud)
这几乎是我可以从 Qt 文档以及 google 和 SO 提供的内容中找出的内容。但是,这根本行不通。
我正在测试 TabWidget 内部和外部的小部件,上面的函数为明显不同颜色的小部件返回相同的颜色。也就是说,它总是返回灰色,即使对于选项卡中的纯白色小部件也是如此。
我在这里错过了什么吗?
编辑:
我的问题是,当使用 matplotlib 时,当嵌入到 QTabWidget 中时,matplotlib 会绘制带有“无”面部颜色的图形,并且背景颜色错误:灰色,即使父窗口小部件是白色的。
为了解决这个问题,我想获取小部件的背景颜色并将其设置为图形的背景颜色。虽然这可能是 matplotlib 问题,但我猜这将是最快的解决方法。当我发现我无法获得正确的颜色时,我变得坚持:)
我在测试我的烧瓶应用程序时遇到了一个奇怪的问题.我将它减少到以下,让它为'test.py':
if __name__ == '__main__':
from flask import Flask
app = Flask(__name__)
@app.route('/hello')
def hello():
return 'hello\n'
app.run(debug = True)
Run Code Online (Sandbox Code Playgroud)
所以我只是这样运行:
python test.py
* Running on http://127.0.0.1:5000/
* Restarting with reloader
Run Code Online (Sandbox Code Playgroud)
现在在另一个终端我可以这样做:
>> curl http://localhost:5000/hello
hello
Run Code Online (Sandbox Code Playgroud)
但是,什么行不通,是这样的:
>> curl http://192.168.178.23:5000/hello
curl: (7) couldn't connect to host
Run Code Online (Sandbox Code Playgroud)
其中ifconfig en1给出了:
[...] inet 192.168.178.23 [...]
最初我想从本地网络中的另一台机器测试我的实际应用程序 - 这就是我遇到这个问题的方式.
我也试过我的浏览器,wget和其他"客户".
如果我用python内置的BaseHTTPServer和Handler替换所有Flask/Werkzeug的东西,事情很好 - 这让我得出结论,下面有一个烧瓶或werkzeug的奇怪问题,而不是例如我的网络配置.
我对所有低级别的io都不太熟悉,所以不知道从哪里开始寻找问题的根源.
如果我在这里遗漏了一些愚蠢的东西,请提前道歉......
python ×3
flask ×1
java ×1
macos ×1
matlab ×1
matplotlib ×1
pyqt ×1
qt ×1
sqlalchemy ×1
werkzeug ×1