小编mar*_*ius的帖子

通过回调将函数转换为Python生成器?

Scipy最小化函数(仅用作示例),可以选择在每一步添加回调函数.所以我可以做点什么,

def my_callback(x):
    print x
scipy.optimize.fmin(func, x0, callback=my_callback)
Run Code Online (Sandbox Code Playgroud)

有没有办法使用回调函数来创建fmin的生成器版本,这样我才能做到,

for x in my_fmin(func,x0):
    print x
Run Code Online (Sandbox Code Playgroud)

似乎可能有一些产量和发送的组合,但我可以想到任何事情.

python generator coroutine

30
推荐指数
3
解决办法
5716
查看次数

如何为子模块更新编写git commit消息?

我总是很难为提交编写好的git提交消息,除了提交子模块的更新之外什么也没做.我真正想写的是"只是阅读那些令人讨厌的子模块提交消息!"

也许稍微更好的解决方案是,确实存在着一些东西,去子模块并连接所有消息,因为先前的承诺它一些不错的方式是在并自动使得消息?

git commit-message commit git-submodules

12
推荐指数
2
解决办法
609
查看次数

Python如何获取调用函数(不仅仅是它的名字)?

我想编写一个返回调用函数的函数:

def foo():
    return get_calling_function() #should return 'foo' function object
Run Code Online (Sandbox Code Playgroud)

网上有很多示例如何获取调用函数的名称,但没有如何获取实际对象。我想出了以下获取名称的解决方案,然后在调用函数的全局命名空间中查找它。但是,这不适用于类函数,因为您还需要类名,而且我认为还有许多其他边缘情况。

from inspect import stack
def get_calling_function():
    return stack()[2][0].f_globals[stack()[1][3]]
Run Code Online (Sandbox Code Playgroud)

那么任何建议如何或是否可以编写此函数以使其通用(在 Python 3 上,顺便说一句)?谢谢。

python function inspect python-3.x

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

我可以使用distutils创建一个静态Cython库吗?

我想使用distutils构建一个静态的Cython库.我不关心它是一个可以导入的真正的Python扩展模块.我只想编译代码并将对象放在静态库中.创建动态库的代码非常简单,

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

setup(
   cmdclass = {'build_ext':build_ext},
   ext_modules = [Extension("test",["test.pyx"])]
)
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法可以使其静止?

python distutils static-libraries cython

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

如何在Docker构建期间运行命令,这需要一个tty?

我需要在Docker构建期间运行一些需要tty的脚本(Docker在构建期间不提供).在脚本下,脚本使用该read命令.有了 tty,我可以做的事情(echo yes; echo no) | myscript.sh.

没有它,我会得到一些我不完全理解的奇怪错误.那么在构建期间有没有办法使用这个脚本(假设它不是我的修改?)

编辑:这是一个更明确的错误示例:

FROM ubuntu:14.04
RUN echo yes | read
Run Code Online (Sandbox Code Playgroud)

失败的是:

Step 0 : FROM ubuntu:14.04
 ---> 826544226fdc
Step 1 : RUN echo yes | read
 ---> Running in 4d49fd03b38b
/bin/sh: 1: read: arg count
The command '/bin/sh -c echo yes | read' returned a non-zero code: 2
Run Code Online (Sandbox Code Playgroud)

linux tty docker dockerfile

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

有没有办法将多个包与 Python setuptools 捆绑在一起?

我有A包和B包,都有自己的git仓库,PyPI页面等等……A包依赖B包,通过install_requires关键字我可以让A自动下载安装B。

但是假设我想为我特别不精明的用户更进一步;我想在包 A 的 tar/zip 中实际包含包 B,所以不需要下载(这也让他们有可能对包 B 进行任何手动编辑setup.cfg

是否有建议的(最好是自动化的)方法,

  • 当我呼叫 A 时,将 B 包含在sdistA 中
  • 告诉 setuptools B 与 A 捆绑在一起以解决依赖关系(类似于 local dependency_links

谢谢!

python setuptools

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

如何确定缺少哪个Python关键字参数?

当忘记将某些参数传递给函数时,Python给出了唯一有用的消息"myfunction()接受X参数(给定Y)".有没有办法弄清楚缺少的参数的名称,并告诉用户?就像是:

try:
    #begin blackbox
    def f(x,y):
        return x*y

    f(x=1)
    #end blackbox
except Exception as e:
    #figure out the missing keyword argument is called "y" and tell the user so
Run Code Online (Sandbox Code Playgroud)

假设开始blackbox和end blackbox之间的代码对于异常处理程序是未知的.

编辑:正如我在下面指出的那样,Python 3已经内置了这个功能.让我扩展一下这个问题,是否有一种(可能是丑陋和hacky)方法在Python 2.x中执行此操作?

python inspect keyword-argument

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

将文件从远程服务器上的Docker卷复制到本地主机的最佳方法?

我有,

  1. 我的笔记本电脑
  2. 一个远程服务器,我可以SSH到其中有一个Docker卷,其中有一些我想要复制到我的笔记本电脑的文件.

复制这些文件的最佳方法是什么?使用诸如rsync之类的东西的加分点.快速/可以恢复/显示进度而不写任何临时文件.

注意:我的远程服务器上的用户没有权限将数据直接从卷装入中删除/var/lib/docker,尽管我可以在那里运行任何容器.

ssh file-transfer docker

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

尽管 rasterized=True,为什么 matplotlib 图文件大小很大?

一个简单的例子:

from matplotlib.pyplot import plot, savefig
from numpy.random import randn

plot(randn(100),randn(100,500),"k",alpha=0.03,rasterized=True)
savefig("test.pdf",dpi=90)
Run Code Online (Sandbox Code Playgroud)

生产:

在此输入图像描述

但文件大小约为 8Mb。有什么想法出了什么问题吗?这可能是一个错误吗?我使用的是 Python 3.5.1 和 Matplotlib 2.1.2。

python matplotlib

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