小编mon*_*kut的帖子

使用cython .pxd文件来增强纯python文件

按照这里的示例" Augementing .pxd ",我正在尝试使用".pxd"文件来扩充纯python文件.(在纯python文件外部添加类型定义).

python文件:

class A(object):
    def foo(self, i=3, x=None):
        print "Big" if i > 1000 else "Small"
Run Code Online (Sandbox Code Playgroud)

pxd文件:

cdef class A:
    cpdef foo(self, int i, x)
Run Code Online (Sandbox Code Playgroud)

我有一本字典,我在python中默认为"无".不幸的是,cython不喜欢这个.

如果我使用我的"纯"python文件,而不在pxd文件中声明类型或将类型声明为"dict",我会收到错误:

"签名与之前的声明不兼容"

我注意到如果我没有指定默认值,它将编译,但是有理由声明默认值.

有办法可以处理吗?

python cython

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

如何确定接口是否是Windows PC上的物理LAN端口?

我正在寻找一种方法来确定接口是否是Windows中PC上的物理802.3以太网端口.

使用ipconfig/all我可以列出所有接口,当我在我的电脑上执行此操作时,可以在此列出几个条目,包括VPN,蓝牙,Wifi和物理以太网接口.

我正在寻找像"isPhysical(interface)"这样的东西.(可以有多个物理局域网端口,我只是想知道它是否是物理端口).

更新:

杰伊和克里斯谢谢!

(评论中没有足够的空间,所以我会在这里发布)

我目前正在寻找使用WMI Win32_NetworkAdapter.但是,它显示4个接口,AdapterType ="Ethernet 802.3".

我的电脑上只有1个物理端口,其他人有名称"虚拟机网络服务驱动程序".(我认为这些是由我公司安装的,因为一些恶劣的原因)

我在界面中找到了我需要的属性,但它在winXP中不可用!

PhysicalAdapter数据类型:布尔值访问类型:只读

指示适配器是物理适配器还是逻辑适配器.如果为True,则适配器是物理的.Windows Server 2003,Windows XP,Windows 2000和Windows NT 4.0:此属性不可用.

有没有办法确定它是否是一个物理端口,除了对名称中的"虚拟"一词进行文本过滤?

更新12/08

如果安装了VM,则会添加虚拟接口.

以下是有关虚拟适配器的一些详细信息:http: //blogs.msdn.com/virtual_pc_guy/archive/2005/04/01/404816.aspx

发现如果用户没有管理员权限,WMI接口不返回所需数据的问题.所以,现在看一下GetAdapterInfo方法.但是,它似乎将"虚拟机服务驱动程序"添加到实际适配器的描述中,使"虚拟"文本检查无效.

并且GetAdapterInfo返回的结构:

http://msdn.microsoft.com/en-us/library/aa366062(VS.85).aspx

windows wmi admin ipconfig

5
推荐指数
2
解决办法
7077
查看次数

如何使用 urllib2 将经过身份验证的代理异常应用于 opener?

当在 Windows 上使用 urllib2(也可能是 urllib)时,Python 似乎神奇地拾取了应用于 InternetExplorer 的经过身份验证的代理设置。但是,它似乎没有检查和处理高级设置“例外”列表。

有没有办法让它处理例外列表?或者,忽略 IE 代理设置并应用我自己的代理开启器来解决此问题?

我之前尝试过创建代理开启器,但无法让它工作。这是我设法挖掘出的内容,但我仍然不知道如何/在哪里应用任何例外,我什至不确定这是否正确:

proxy_info = {
                      'host':'myproxy.com',
                      'user':Username,
                      'pass':Password,
                      'port':1080
                      }                                                   

http_str = "http://%(user)s:%(pass)s@%(host)s:%(port)d" % proxy_info

authInfo = urllib2.HTTPBasicAuthHandler()
authInfo.add_password()
proxy_dict = {'http':http_str}
proxyHandler = urllib2.ProxyHandler(proxy_dict)

# apply the handler to an opener
proxy_opener = urllib2.build_opener(proxyHandler, urllib2.HTTPHandler)

urllib2.install_opener(proxy_opener)
Run Code Online (Sandbox Code Playgroud)

python windows proxy

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

如何通过 slackclient 将图像作为 slack bot 发送到 Slack?

我正在构建一个简单的机器人,定期生成图表作为图像,并通过 python slackclient包发布到 slack。

我已经成功使用以下代码发送了一条机器人消息:

def post_message_to_channel(self, channel_id, message=DEFAULT_TEST_MESSAGE):
    sc = SlackClient(TOKEN)
    sc.api_call(
        "chat.postMessage",
        channel=channel_id,
        username='mybot',
        text='test text message'
    )
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试对文件上传执行相同操作时,图像已正确发送,但它显示我的名字,而不是指定的机器人名称:

def post_image_to_channel(self, channel_name, filepath, tile='Test Upload'):
    sc = SlackClient(TOKEN)
    with open(filepath, 'rb') as file_content:
        sc.api_call(
                "files.upload",
                channels=channel_id,
                file=file_content,
                title=tile,
                username='mybot',               
            )
Run Code Online (Sandbox Code Playgroud)

查看files.upload 的 slack API 文档,似乎username不可用。

如何使用机器人名称发送files.upload图像?

python slack-api slack

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

配置django的setting.TIME_ZONE会影响datetime.datetime.now()吗?

文件说:

http://docs.djangoproject.com/en/dev/ref/settings/#time-zone

请注意,这是Django将转换所有日期/时间的时区 - 不一定是服务器的时区.例如,一台服务器可以为多个Django供电的站点提供服务,每个站点都有一个单独的时区设置.通常,Django将os.environ ['TZ']变量设置为您在TIME_ZONE设置中指定的时区.因此,您的所有视图和模型将自动在正确的时区内运行.

我已多次阅读此内容,但我不清楚TIME_ZONE设置发生了什么.

如果我想要将具有日期时间戳的模型显示给用户本地时区,我是否应该管理UTC偏移?

例如,在保存时使用datetime.datetime.utcnow()而不是datetime.datetime.now(),并在视图中执行以下操作:

display_datetime = model.date_time + datetime.timedelta(USER_UTC_OFFSET)
Run Code Online (Sandbox Code Playgroud)

python django datetime

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

隐藏从GPS纪元到python datetime对象的二进制64位时间戳偏移

我试图找出我认为应该是8byte/64位时间戳的内容.

import datetime
GPS_EPOCH = datetime.datetime(1980, 1, 6)
t1 = "\x00\x00\xBF\x13\xDB\x79\xC0\x00" # expected: 2012-10-04 01:00:51.759
t2 = "\x00\x00\xC0\x13\xDB\x79\xC0\x00" # expected: 2012-10-04 01:00:51.760
t3 = "\x00\x00\xC2\x13\xDB\x79\xC0\x00" # expected: 2012-10-04 01:00:51.763
t4 = "\x00\x00\x80\xE7\xFB\x79\xC0\x00" # expected: 2012-10-04 01:45:40.960
Run Code Online (Sandbox Code Playgroud)

我相信由GPS_EPOCH 产生t1并且t2应该从GPS_EPOCH偏移的值(s?).但是,我似乎无法得到与预期结果datetime匹配的结果.

我一直在阅读,这似乎是合乎逻辑的,它将被分成两部分,一部分可能是小数,另一部分是秒(每个4字节?).但是,我没有找到任何基于GPS时代的时间戳格式的参考.

任何想法如何将其转化为预期的结果?

python binary datetime

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

在WinXP中自动更改键盘布局

我想在Windows XP上的python中将键盘语言从英语更改为阿拉伯语,就像我有两行编辑,第一页用英语写,当转到第二行编辑语言将自动阿拉伯语?

python

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

如何在传单中设置geojson对象或图层的不透明度?

我正在尝试应用于opacitygeojson层leaflet.js.该文件似乎表明,opacity可以在风格配置进行设置.

var exteriorStyle = {
    "color": "#ffffff",
    "weight": 0,
    "opacity": 0.99
};

var exteriorMaskLayer = L.geoJson(exteriorMaskGeojsonPoly, {style: exteriorStyle}).addTo(map);
Run Code Online (Sandbox Code Playgroud)

我想要对象来掩盖/隐藏背景图.在这里,使用exteriorStyle颜色确实应用于结果exteriorMaskLayer,并显示多边形.

但是,该opacity值似乎被忽略.

我也尝试过使用没有效果的setOpacity()方法exteriorMaskLayer.

var exteriorMaskLayer = L.geoJson(exteriorMaskGeojsonPoly, {style: exteriorStyle}).addTo(map);
exteriorMaskLayer.setOpacity(1.0);
Run Code Online (Sandbox Code Playgroud)

如何在传单中设置geojson对象或图层的不透明度?

使用Leaflet-Leaflet-v0.5.1-0-gc1d410f.zip

javascript leaflet

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

创建非纳米矩阵交叉的掩模

我有两个(或更多)numpy数组,其中我需要在每个单元格上执行calulcation,其中所有匹配的单元格位置都具有非null值.

import numpy

arr_a = numpy.zeros(shape=(5,6))
arr_a.fill(numpy.nan)
arr_b = numpy.zeros(shape=(5,6))
arr_b.fill(numpy.nan)

arr_a[1,1] = 12.9
arr_b[1,1] = 99.2
arr_b[1,2] = 99.2
Run Code Online (Sandbox Code Playgroud)

样品:

arr_a:
array([[  nan,   nan,   nan,   nan,   nan,   nan],
       [  nan,  12.9,   nan,   nan,   nan,   nan],
       [  nan,   nan,   nan,   nan,   nan,   nan],
       [  nan,   nan,   nan,   nan,   nan,   nan],
       [  nan,   nan,   nan,   nan,   nan,   nan]])

arr_b:
array([[  nan,   nan,   nan,   nan,   nan,   nan],
       [  nan,  99.2,  99.2,   nan,   nan,   nan],
       [  nan,   nan,   nan,   nan,   nan, …
Run Code Online (Sandbox Code Playgroud)

python numpy

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

geodjango + PostGIS = GPL?

我总是对许可证感到困惑,我正在再次阅读,但我确信有人已经理解了这一点,并且可以更清楚地解释它.

我试图让我的公司使用geodjango,并且作为一个典型的大型企业公司,他们不想开源所得到的项目.因此反对触及任何标有"GPL"的东西.

使用推荐的postgresql查看geodjango堆栈,许可证是:

Django - BSD许可证

Postgresql - BSD许可证

PostGIS - GPL

GEOS - LGPL

PROJ.4 - 麻省理工学院执照

GDAL - MIT/X许可证

psycopg2 - GPL

gpl上的维基百科条目说明如下:

许多最常见的免费软件许可证,例如最初的MIT/X许可证,BSD许可证(目前的3条款形式)和LGPL,都是"GPL兼容的".也就是说,他们的代码可以与GPL下的程序组合而不会发生冲突(新组合将GPL应用于整体).

来自维基百科的GPL条目,"兼容性和多许可":http://en.wikipedia.org/wiki/Gpl

使用带有geodjango的psycopg2/PostGIS组件,是否可以生成项目的GPL许可证?如果是这样,有哪些替代方案?

UPDATE

psycopg2有一个专门解决GPL应用方式的条款,感谢piquadrat.

python django licensing

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