小编min*_*nrk的帖子

检测setup.py中的pip

要点:在setup.py中检测到我们被触发的最佳方法是pip install package什么?

背景:我有一个包(C库的绑定),我提供包含库本身的蛋.在我的自述文件中,我注意到这个软件包在某些平台上是"easy_install-able".从源代码构建时(例如使用pip),库本身就是构建依赖项.问题是我经常让那些错误地认为pip完全替代easy_install的用户感到困惑,并期望pip install package在没有库的系统上工作,或者甚至没有编译器,其中的鸡蛋是他们真正想要的.

我想检测到构建是由pip触发的,所以如果由于缺少库而失败,我可以提供友好的"pip!= easy_install"消息.它不需要是完美的,只需抓住最常见的情况pip install package.在检查时,似乎没有一种特别强大的方法来做到这一点,我想出的最好的是:

probably_using_pip = '--single-version-externally-managed' in sys.argv
Run Code Online (Sandbox Code Playgroud)

是否有更好的(或更好的,官方的)方法来检测来自setup.py的pip?

python pip easy-install

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

简单的IPython示例在sys.exit()上引发异常

我在IPython中做了一些非常简单的PySide(和PyQt)教程.一个教程只是创建一个带有一些滑块的窗口来演示插槽和信号.

当我关闭正在运行的演示应用程序的窗口时,我看到此错误:

An exception has occurred, use %tb to see the full traceback.
SystemExit: 0
To exit: use 'exit', 'quit', or Ctrl-D.
Run Code Online (Sandbox Code Playgroud)

所以我运行%tb并得到这个:

SystemExit                                Traceback (most recent call last)
/Workspaces/scratch/<ipython-input-1-88966dcfb499> in <module>()
     33 
     34 if __name__ == "__main__":
---> 35     main()

/Workspaces/scratch/<ipython-input-1-88966dcfb499> in main()
     29         w.show()
     30         app.exec_()
---> 31         sys.exit(0)
     32 
     33 

SystemExit: 0
Run Code Online (Sandbox Code Playgroud)

如果我再次尝试执行我的代码,我会得到这个:

RuntimeError: A QApplication instance already exists.
Run Code Online (Sandbox Code Playgroud)

如果它有帮助,这里我的代码:

from PySide.QtCore import *
from PySide.QtGui import *
import sys

class MyWindow(QWidget):
    def __init__(self):
        QWidget.__init__(self, None)

        vbox …
Run Code Online (Sandbox Code Playgroud)

exception exit ipython pyqt4 pyside

11
推荐指数
4
解决办法
4万
查看次数

IPython.parallel不使用多核?

我正在试验,IPython.parallel只是想在不同的引擎上启动几个shell命令.

我有以下笔记本:

单元格0:

from IPython.parallel import Client
client = Client()
print len(client)
5
Run Code Online (Sandbox Code Playgroud)

并启动命令:

单元格1:

%%px --targets 0 --noblock
!python server.py
Run Code Online (Sandbox Code Playgroud)

单元格2:

%%px --targets 1 --noblock
!python mincemeat.py 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

单元格3:

%%px --targets 2 --noblock
!python mincemeat.py 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

它的作用是使用mincemeatMapReduce 的实现.当我启动第!python mincemeat.py 127.0.0.1一个核心时,它大约使用100%的一个核心,然后当我启动第二个核心时,每个核心降低到50%.我在机器上有4个核心(+虚拟核心),可以直接从终端启动而不是在笔记本电脑中使用它们.

有什么我想念的吗?我想为每个!python mincemeat.py 127.0.0.1命令使用一个核心.

编辑:
为清楚起见,这是另一个不使用多核的东西:

单元格1:

%%px --targets 0 --noblock

a = 0
for i in xrange(100000):
    for j in xrange(10000):
        a += 1
Run Code Online (Sandbox Code Playgroud)

单元格2:

%%px --targets 0 --noblock

a = …
Run Code Online (Sandbox Code Playgroud)

python mapreduce ipython ipython-notebook ipython-parallel

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

python错误"列表索引必须是整数",它们是整数

我遇到了问题.我有一个由31个元素组成的数组,称为颜色.我还有另一个数组,其整数在0到31之间变化,这称为c.我想生成一个新数组,其中c中的值现在是颜色中的相应值.

我写:

newarray =颜色并[c]

但得到错误消息"列表索引必须是整数",但c是一个整数数组.我是python的新手,没有时间做教程,因为我只需要它来进行特定的绘图任务.有人能帮我一把吗?

谢谢

python

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

在PyCharm IPython中调试

在PyCharm的IPython控制台中运行代码时是否可以点击图形断点?

即:

  • 你在foo.py中有一个脚本foo()
  • 您在编辑器(行号旁边的红点)中将图形断点放在foo()中
  • 你将foo导入PyCharm的IPython控制台并执行foo()(注意:不是从调试配置运行!)

python debugging ipython pycharm

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

使用Python并行进行多个API调用(IPython)

我在我的本地机器(Mac)上使用Python(IPython和Canopy)和RESTful内容API.

我有一个由3000个唯一ID组成的数组,用于从API中提取数据,并且一次只能使用一个ID调用API.

我希望能以某种方式同时制作3组1000个电话以加快速度.

这样做的最佳方式是什么?

在此先感谢您的帮助!

python api parallel-processing

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

可以远程访问IPython笔记本而无需使用内联绘图吗?

我想在远程计算机上连接到一个IPython笔记本(通过ssh-tunnel或https),让ipython笔记本在新窗口中打开matplotlib图(而不是'inline').

这可能吗?

当我试图在没有'内联'后端的情况下进行绘图时,笔记本核心报告':无法连接到X服务器',并崩溃.

X11服务器正在客户端计算机上运行,​​我在创建ssh-tunnel时使用-Y选项启用了X11转发.

谢谢你的建议.

x11 matplotlib ipython

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

zeromq DEALER客户端到多个服务器(ROUTER)

我正在使用ZEROMQ进行分布式消息传递应用程序.需要将客户端(DEALER套接字)连接到多个服务器(服务器端的ROUTER套接字).在CLIENT方面我有哪些选择?

  1. 在客户端为每个服务器端点(ROUTER套接字)创建DEALER套接字.
  2. 在客户端只创建一个DEALER套接字并添加多个端点.

我尝试了选项2 - 连接到多个端点,但消息总是转到第一个连接的端点.遵循以下步骤:

  • 创建DEALER套接字
  • 连接到第一个端点
  • 然后在运行时,使用socket.connect(端点)将另一个端点添加到套接字.我需要重新连接吗?

在DEALER套接字中,如果特定端点连接到多个端点,则无法在特定端点上发送消息.

任何的想法?

zeromq

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

如何逐步使用 python 调试器在每次函数调用时中断?

我想密切监视从某个函数调用的函数调用链。

import pdb; pdb.set_trace()
res = api.InsertVideoEntry(video_entry, video)
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来轻松查看api.insertVideoEntry(video_entry, video)调用foo()which call bar()which calls 的调用baz()

这是一个非常粗糙的图表来说明我的意思。我不需要这种形式的信息,但这是我正在寻找的那种信息。

api.insertVideoEntry()
    foo()
        bar()
            baz()
            baz2()
        log()
    finish()
Run Code Online (Sandbox Code Playgroud)

python debugging pdb

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

RMagic,IPython和摘要信息

按照这里的例子

http://www.randalolson.com/2013/01/14/filling-in-pythons-gaps-in-statistics-packages-with-rmagic/

我在IPython笔记本中的不同数据集上尝试了相同的操作.

https://github.com/burakbayramli/kod/blob/master/delltest/dell.tgz

from pandas import *
orders = read_csv("dell.csv",sep=",")
%load_ext rmagic
%R -i orders print(summary(orders))
Run Code Online (Sandbox Code Playgroud)

我明白了

     Length Class  Mode
[1,] 25     -none- list
[2,] 25     -none- list
[3,] 25     -none- list
..
Run Code Online (Sandbox Code Playgroud)

但是在R中也一样

data <- read.csv ("dell.csv",header=TRUE,sep=",")
print (summary(data))
Run Code Online (Sandbox Code Playgroud)

给我正确的摘要信息.

      rank        per_customer_count total_total_amount    orderid     
 Min.   : 1.000   Min.   : 1.000     Min.   :    0.14   Min.   :    1  
 1st Qu.: 2.000   1st Qu.: 6.000     1st Qu.:  866.11   1st Qu.: 2964  
 Median : 4.000   Median : 8.000     Median : 1764.08   Median …
Run Code Online (Sandbox Code Playgroud)

ipython rpy2 pandas ipython-notebook

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