小编Evg*_*Evg的帖子

用于Windows的python whois

我试着在python中获得whois.我使用这个 http://code.google.com/p/pywhois/ 但它只在linux中运行.在Windows上运行它是否可行?目前我得到错误(因为内部linux命令whois使用)

python windows whois

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

存储代码以供以后执行的最佳方法(python)

我有一些任务存储在db中供以后执行.例如,我可以修复发送电子邮件的任务.并通过cron exec任务(发送它).我搜索在db中存储代码以便以后执行的最佳方法.对于ex存储它的原始字符串的python代码,而不是eval,但我也必须在这里存储相对导入..

例如,对于发送电子邮件,我必须修复这样的字符串:

s ="来自django.core.mail import send_mail \n send_mail('subj','body','email @ box.ru',['email1@box.ru'],fail_silently = False)"

以后eval ..任何想法做到最好的方式或更好的模式这种任务?

python queue serialization task

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

内存泄漏 - gunicorn + django + mysqldb

我的gunicorn + django 1.5.1 + mysqldb中有内存泄漏.我开始用gc和objgraph探索我的代码

当gunicorn工人超过300mb我收集了一些统计数据:

data['sum_leak'] = sum((getsizeof(o) for o in objgraph.get_leaking_objects()))  #2 mb
data['total_objects_length'] = sum((getsizeof(o) for o in gc.get_objects()))    #6 mb 
Run Code Online (Sandbox Code Playgroud)

因此,只有2 + 6 = 8 mb,而gunicorn工人超过300 mb.

所以我觉得问题不在python代码中,而是更深层次.

我有:gunicorn == 0.17.2 mysqldb == 1.2.4

我通过pip install将whem更新为19.0.0和1.2.5,但pip frreze显示旧版本,而gunicorn -v和mysqldb.version_info显示最后更新.

所以我想如何全部重新安装gunicorn和mysqldb以避免它完全删除旧的(可能是一些旧的基本问题)?

我也得到了pmap的一些信息:

pmap -x 805
805:   /usr/bin/python /usr/local/bin/gunicorn engine.wsgi:application -b 127.0.0.1:9005 --workers=2
Address   Kbytes     RSS   Dirty Mode   Mapping
08048000       0    1444       0 r-x--  python2.7
0829e000       0       4       4 r----  python2.7
0829f000       0     204     120 rw---  python2.7
082f4000 …
Run Code Online (Sandbox Code Playgroud)

python django memory-leaks mysql-python gunicorn

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

haskell,IO Monoid 关联性被破坏了吗?

在 haskell IO 类型中有 Monoid 的实例:

instance Monoid a => Monoid (IO a) where
    mempty = pure empty
Run Code Online (Sandbox Code Playgroud)

如果我有三个共享某个状态的操作,并通过副作用改变彼此的行为,从 IO 类型的角度来看,这可能会导致违反关联律:

a1:: IO String
a2:: IO String
a3:: IO String
Run Code Online (Sandbox Code Playgroud)

(a1 mappenda2) mappenda3 /= a1 mappend(a2 mappenda3)

例如,如果 a1,a2,a3 请求字符串中的当前时间,或者 IO 包含一些计算请求编号的 DB。这意味着它可以是:

(a1 `mappend` a2) `mappend` a3  == "1"++"2"++"3"
a1 `mappend` (a2 `mappend` a3) == "3"++"1"++"2"
Run Code Online (Sandbox Code Playgroud)

编辑:

我想我不应该用 db 举一个例子,它很困惑,更喜欢的例子:

a1 = show <$> getUnixTime 
a2 = show <$> getUnixTime
a3 = show <$> getUnixTime …
Run Code Online (Sandbox Code Playgroud)

io monads haskell functional-programming monoids

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

在 Haskell 中掩码合并两个字符串的优雅方法

例如,如果我们有两个字符串"abc"并且"1234"我想要结果"abc4"(第一个字符串掩码第二个)。(如果我们将它们垂直绘制,就像波浪从左侧传来并拉动字符)

             "a"  "1"            "a"
 wave ->     "b"  "2"   result   "b" 
             "c"  "3"            "c"
                  "4"            "4"  
Run Code Online (Sandbox Code Playgroud)

我从 Haskell 的解决方案开始

slice from to xs = take (to - from + 1) (drop from xs)
merge l1 l2 = if length l2 > length l1 
                then l1 ++ slice (length l1) (length l2) l2 
                else l1
Run Code Online (Sandbox Code Playgroud)

您能提供一些更优雅\紧凑的解决方案吗?

merge haskell list

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

django记忆密钥生成

默认的django缓存密钥生成器:

def make_key(key, key_prefix, version):
    return ':'.join([key_prefix, str(version), key])
Run Code Online (Sandbox Code Playgroud)

我想改变:

在settings.py中

def make_key(key, key_prefix, version):
    return key

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
        'KEY_FUNCTION' : 'settings.make_key',
        }
}
Run Code Online (Sandbox Code Playgroud)

但是django用旧的本机函数(prefix-version-key)生成密钥如何更改呢?

django memcached

0
推荐指数
1
解决办法
676
查看次数