我正在尝试在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) 对于以下命令:
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)),但它没有产生所需的结果.我怎么会这样做?
我需要执行一个产生大量输出的命令,并且需要花费大量时间来执行(> 30分钟).我正在考虑使用subprocess.Popen来做到这一点.我需要捕获命令的输出,所以我将PIPE传递给stdout和stderr.
使用Popen.wait()时的死锁问题已在很多论坛上得到充分记录,因此Popen.communicate()是避免死锁的建议方法.该解决方案的问题是communication()阻塞直到命令完成.我需要在执行命令时打印到达stdout的所有内容.如果20分钟后没有输出,脚本执行将被终止.
以下是我需要遵守的一些约束:
有办法吗?
我试图从一个产生长而耗时的输出的过程中读取.不过,我想抓住它的输出为当它被生产.但是使用类似下面的东西似乎是在缓冲命令的输出,所以我最终得到了所有输出行:
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上尝试这个
我正在尝试编写一个使用该subprocess模块的小应用程序.
我的程序调用外部Bash命令,需要一些时间来处理.在此期间,我想向用户展示一系列这样的消息:
处理.请稍等...
输出为foo()
我怎么能用Popen.wait()或者这样做呢Popen.poll().我已经读过我需要使用的Popen.returncode,但我怎么能得到它来主动检查状态,我不知道.
我在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"
我应该如何更改代码以便能够以这种方式运行它?
谢谢,阿尔沙夫斯基亚历山大.
如:
str = 'sdf344asfasf????3?sdfsdf'
Run Code Online (Sandbox Code Playgroud)
添加()到中文和日文字符:
strAfterConvert = 'sdfasfasf(????)3(?)sdfsdf'
Run Code Online (Sandbox Code Playgroud) 我正在导入很多不同的脚本,所以在我的文件的顶部,它会被import语句弄得乱七八糟,即:
from somewhere.fileA import ...
from somewhere.fileB import ...
from somewhere.fileC import ...
...
Run Code Online (Sandbox Code Playgroud)
有没有办法将所有这些移动到其他地方,然后我所要做的就是导入该文件,所以它只是一个干净的导入?
所以我试图按照用户指南的建议从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) 我收到以下错误
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 ×10
subprocess ×5
stdout ×2
argparse ×1
deadlock ×1
matplotlib ×1
pipe ×1
string ×1
unicode ×1
utf-8 ×1