我见过的例子,其中qsize()
并len()
已用于计算队列的大小.两者有什么区别?
我有一个非常简单的测试脚本,只是为了学习pytest,tmp.py:
def square(x):
return x*x
def test_square():
assert square(4) == 16
Run Code Online (Sandbox Code Playgroud)
使用Pycharm来运行这个脚本,我已经配置了我的项目设置,使得pytest被用作我的默认测试运行器.当我运行上面的代码时,我收到以下错误:
/Users/mingxiao/webdav_2.7.5/bin/python /Applications/PyCharm.app/helpers/pycharm/pytestrunner.py -p pytest_teamcity /Users/mingxiao/dev/juggernaut/src/integrations/webDAV/demo/tmp.py "-k test_square"
Testing started at 4:41 PM ...
Traceback (most recent call last):
File "/Applications/PyCharm.app/helpers/pycharm/pytestrunner.py", line 51, in <module>
main()
File "/Applications/PyCharm.app/helpers/pycharm/pytestrunner.py", line 20, in main
_pluginmanager = PluginManager(load=True)
TypeError: __init__() got an unexpected keyword argument 'load'
Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)
我正在运行PyCharm 3.0专业版,pytest 2.4.2和python 2.7.5.似乎它的PyCharm本身就是造成这个问题的原因.
我正在尝试创建一个简单的(即Hello World)Yosemite的Finder Sync示例.
该链接有一个教程,但有谁知道源的来源?或者,如果他们有自己的准系统示例?在查看文件夹时可以注册的内容以及如何创建上下文菜单
在发送电子邮件时遇到模板变量问题而不是替换.我有一个简单的模板:
<div class="entry">
Your name is {{firstName}}
</div>
我的python代码发送电子邮件:
client = mandrill.Mandrill(apikey=api_key)
my_merge_vars = [{'content': 'Dexter', 'name': 'firstName'}]
message = {'from_email': 'addr1@gmail.com',
'to': [{'email': 'addr2@gmail.com',
'name': 'Deborah',
'type': 'to'}
],
'subject': 'example subject',
'global_merge_vars': my_merge_vars
}
result = client.messages.send_template(template_name='test-template',
template_content=[],
message=message)
Run Code Online (Sandbox Code Playgroud)
电子邮件发送,但我得到:
Your name is {{firstName}}
我有一个创建表的alembic升级脚本,但是如果它已经存在,我不希望它创建表.
根据alembic doc,我可以将关键字args传递op.create_tables
给sqlalchemy.schema.table可接受的,所以我使用的是keep_existing
关键字:
op.create_table('foo_model',
sa.Column('foo_id', sa.Integer(), nullable=False),
sa.Column('foo_str', sa.String(length=255), nullable=True),
sa.PrimaryKeyConstraint('foo_id'),
keep_existing= True
)
Run Code Online (Sandbox Code Playgroud)
但是我仍然得到表已经存在的错误.
sqlalchemy.exc.InternalError: (InternalError) (1050, u"Table 'foo_model' already exists") '\nCREATE TABLE foo_model (\n\tfoo_id INTEGER NOT NULL AUTO_INCREMENT, \n\tfoo_str VARCHAR(255), \n\tPRIMARY KEY (foo_id)\n)\n\n' ()
Run Code Online (Sandbox Code Playgroud) 假设我有一个/etc/init/my_service.conf
带内容服务的ec2实例
script
exec my_exec
end script
Run Code Online (Sandbox Code Playgroud)
How can I monitor that ec2 instance such that if my_service
stopped running I can act on it?
我正在使用helm-projectile进行emacs.我注意到emacs启动非常慢,~4s.并且弹丸发现模糊匹配也很慢,当我完全输入文件名时需要约3秒.
我正在做一个非常大的项目,~110K文件.有没有我可以从搜索路径中排除文件夹?
给定信号后,如何确定特定信号所连接的插槽?
我熟悉如何连接信号和插槽,这更多是出于调试目的。
我正在使用pyqt5,python 2.7
尝试通过代理发送简单的获取请求。我有“ Proxy-Authorization”和“ Authorization”标头,不要以为我需要“ Authorization”标头,但还是添加了它。
import requests
URL = 'https://www.google.com'
sess = requests.Session()
user = 'someuser'
password = 'somepass'
token = base64.encodestring('%s:%s'%(user,password)).strip()
sess.headers.update({'Proxy-Authorization':'Basic %s'%token})
sess.headers['Authorization'] = 'Basic %s'%token
resp = sess.get(URL)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
requests.packages.urllib3.exceptions.ProxyError: Cannot connect to proxy. Socket error: Tunnel connection failed: 407 Proxy Authentication Required.
Run Code Online (Sandbox Code Playgroud)
但是,当我将URL更改为simple时http://www.google.com
,它可以正常工作。
代理是否对HTTP使用基本,摘要或其他某种身份验证?它是特定于代理服务器的吗?我如何发现该信息?我需要使用请求库来实现。
更新
似乎对于HTTP请求,我们必须传递Proxy-Authorization
标头,但是对于HTTPS请求,我们需要使用用户名和密码来格式化代理URL。
#HTTP
import requests, base64
URL = 'http://www.google.com'
user = <username>
password = <password>
proxy = {'http': 'http://<IP>:<PORT>}
token = base64.encodestring('%s:%s' %(user, password)).strip()
myheader = {'Proxy-Authorization': 'Basic %s' …
Run Code Online (Sandbox Code Playgroud) 我有一个 QWebView 对象,我设置了WindowStaysOnTopHint,但是当我关闭它时, QWebView 对象消失了。
view = QWebView()
view.setWindowFlags(WindowStaysOnTopHint)
view.show()
....
#in some slot
view.setWindowFlags(WindowStaysBottomHint) # causes window to disappear
Run Code Online (Sandbox Code Playgroud)
更新
之前的设置是代码的简化版本,这里有更多细节。
class Window(QObject):
self.view = QWebView()
self.view.setWindowFlags(WindowStayOnTopHint)
self.installEventFilter(this)
....
def eventFilter(self,qobject, qevent):
if qevent.type() == QEvent.FocusOut:
# Turn on CloseButtonHint and turn off StayOnTopHint
self.view.setWindowFlags(Qt.WindowCloseButtonHint)
qobject.show() # previously I had self.view.show(), does not cause window to show
return super(FeedbackWindow, self).eventFilter(qobject, qevent)
Run Code Online (Sandbox Code Playgroud) 当我在调试模式下运行以下if/else时
if True:
print 'here'
else:
print 'there'
pass # breakpoint here
Run Code Online (Sandbox Code Playgroud)
调试器在pass
语句上停止.为什么pass
语句被执行?我知道这pass
是无关紧要的,但它在里面else
.
我在Pycharm 2.7.3上运行python 2.7.5
UPDATE
如果pass
语句是程序的最后一行,并且有一个断点,则调试器将停在该pass
语句处.我知道它已停止,因为我可以看到当前的堆栈跟踪和变量.
但是,如果pass
不是最后一行,调试器将不会停在那里.
我感兴趣的是能够使用 win32 扩展通过 python 打开控制面板。
我真正想做的是打开“Internet 属性”面板(控制面板 > 网络和 Internet > Internet 选项),但我认为打开控制面板将是一个足够好的开始。
对于使用 Chrome 的用户,如果您转到“菜单”>“设置”>“显示高级设置”>“更改代理设置...”,Windows“Internet 属性”框会向我们显示。
我正在尝试拥有一个类的默认实例.我希望有
class Foo():
def __init__(self):
....
_default = Foo()
@staticmethod
def get_default():
return _default
Run Code Online (Sandbox Code Playgroud)
然而_default = Foo()
导致NameError: name 'Foo' is not defined
python ×9
pyqt ×2
alembic ×1
debugging ×1
emacs ×1
emacs-helm ×1
email ×1
finder ×1
if-statement ×1
mandrill ×1
objective-c ×1
osx-yosemite ×1
projectile ×1
proxy ×1
pycharm ×1
pyqt5 ×1
pytest ×1
qt ×1
queue ×1
service ×1
size ×1
templates ×1
winapi ×1
windows ×1