小编ryp*_*pel的帖子

导入matplotlib.pyplot挂起

我正在尝试在OS X 10.8.4上运行matplotlib并运行.我已经安装了matplotlib和依赖项(libping,freetype,numpy,scipy).我能够很好地导入matplotlib.但是,如果我尝试导入matplotlib.pyplot,它就会挂起.没有错误,只是没有任何反应.

>>> import matplotlib.pyplot
Run Code Online (Sandbox Code Playgroud)

......我已经等了20分钟,没有任何反应.我使用的是1.2.1版本,但即使卸载并尝试了1.2.0版本,但无济于事.我已经在matplotlib.pyplot上看到了关于导入错误的一些问题,但没有任何关于它的问题.然后,我尝试使用Enthought/Canopy python发行版使其工作,但同样,同样悬而未决的问题.如果我杀了导入,这就是我看到的:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/pyplot.py", line 26, in <module>
    from matplotlib.figure import Figure, figaspect
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/figure.py", line 34, in <module>
    import matplotlib.colorbar as cbar
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/colorbar.py", line 29, in <module>
    import matplotlib.collections as collections
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/collections.py", line 23, in <module>
    import matplotlib.backend_bases as backend_bases
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/backend_bases.py", line 37, in <module>
    import matplotlib.widgets as widgets
  File "/Applications/Canopy.app/appdata/canopy-1.0.3.1262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages/matplotlib/widgets.py", line 17, in <module>
    from lines import Line2D …
Run Code Online (Sandbox Code Playgroud)

python matplotlib python-import

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

在python子进程调用中抑制输出

对于以下命令:

subprocess.call(shlex.split(
            """/usr/local/itms/bin/iTMSTransporter -m lookupMetadata 
              -apple_id %s -destination %s"""%(self.apple_id, self.destination))
Run Code Online (Sandbox Code Playgroud)

它将整个输出打印到终端窗口.我如何在这里抑制所有输出?我尝试过subprocess.call(shlex.split(<command> > /dev/null 2&1)),但它没有产生所需的结果.我怎么会这样做?

python subprocess stdout

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

需要避免子进程死锁而不进行通信

我需要执行一个产生大量输出的命令,并且需要花费大量时间来执行(> 30分钟).我正在考虑使用subprocess.Popen来做到这一点.我需要捕获命令的输出,所以我将PIPE传递给stdout和stderr.

使用Popen.wait()时的死锁问题已在很多论坛上得到充分记录,因此Popen.communicate()是避免死锁的建议方法.该解决方案的问题是communication()阻塞直到命令完成.我需要在执行命令时打印到达stdout的所有内容.如果20分钟后没有输出,脚本执行将被终止.

以下是我需要遵守的一些约束:

  • 我的Python版本是2.4.2,我无法升级.
  • 如果解决方案仍然使用子进程,我需要将subprocess.PIPE传递给所有std句柄以避免此错误:http://bugs.python.org/issue1124861

有办法吗?

python deadlock subprocess stdout pipe

22
推荐指数
2
解决办法
8761
查看次数

使用Python中的子进程从进程中无缓冲读取

我试图从一个产生长而耗时的输出的过程中读取.不过,我想抓住它的输出为当它被生产.但是使用类似下面的东西似乎是在缓冲命令的输出,所以我最终得到了所有输出行:

p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, bufsize=0)
    for line in p.stdout:
        print line
Run Code Online (Sandbox Code Playgroud)

我在MacOS 10.5上尝试这个

python subprocess

21
推荐指数
2
解决办法
7713
查看次数

使用子进程wait()和poll()

我正在尝试编写一个使用该subprocess模块的小应用程序.

我的程序调用外部Bash命令,需要一些时间来处理.在此期间,我想向用户展示一系列这样的消息:

处理.请稍等...
输出为foo()

我怎么能用Popen.wait()或者这样做呢Popen.poll().我已经读过我需要使用的Popen.returncode,但我怎么能得到它来主动检查状态,我不知道.

python subprocess

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

argparse参数嵌套

我在python中有以下代码:

parser = argparse.ArgumentParser(description='Deployment tool')
group = parser.add_mutually_exclusive_group()
group.add_argument('-a', '--add', dest='name_to_add', help='Add a new group or a role to existing group')
group.add_argument('-u', '--upgrade', dest='name_to_upgrade', help='Upgrade a group with the new version')
parser.add_argument('--web_port', help='Port of the WEB instance that is being added to the group')
Run Code Online (Sandbox Code Playgroud)

我的问题是"--web_port"选项.我希望能够仅使用"-a"选项添加此选项,但不能使用"-u"添加此选项.

希望能够运行:"python my_script.py -a name --web_port = XXXX".

不想运行:"python my_script.py -u name --web_port = XXXX"

我应该如何更改代码以便能够以这种方式运行它?

谢谢,阿尔沙夫斯基亚历山大.

python argparse

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

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

Python:导入"导入文件"

我正在导入很多不同的脚本,所以在我的文件的顶部,它会被import语句弄得乱七八糟,即:

from somewhere.fileA import ...
from somewhere.fileB import ...
from somewhere.fileC import ...
...
Run Code Online (Sandbox Code Playgroud)

有没有办法将所有这些移动到其他地方,然后我所要做的就是导入该文件,所以它只是一个干净的导入?

python python-import

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

Python子进程readlines()?

所以我试图按照用户指南的建议从os.popen转移到subprocess.popen.我遇到的唯一麻烦是我似乎无法找到使readlines()工作的方法.

所以我曾经能做到

list = os.popen('ls -l').readlines()
Run Code Online (Sandbox Code Playgroud)

但我不能这样做

list = subprocess.Popen(['ls','-l']).readlines()
Run Code Online (Sandbox Code Playgroud)

python subprocess

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

python中导入错误

我收到以下错误

Traceback (most recent call last):
File "myemail.py", line 1, in <module>
  import smtplib
File "/usr/lib/python2.6/smtplib.py", line 46, in <module>
  import email.utils
File "/home/nikhil/Desktop/bujji/email.py", line 2, in <module>
ImportError: No module named MIMEMultipart
Run Code Online (Sandbox Code Playgroud)

当我运行代码示例时

我试图谷歌出错,但没有任何效果.

python python-import

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