我下载了Graphviz 2.38MSI版本并安装在文件夹下C:\Python34,然后我运行pip install Graphviz,一切顺利.在系统的路径中我添加了C:\Python34\bin.当我尝试运行测试脚本时filename=dot.render(filename='test'),我收到了一条消息
RuntimeError: failed to execute ['dot', '-Tpdf', '-O', 'test'], make sure the Graphviz executables are on your systems' path
Run Code Online (Sandbox Code Playgroud)
我试图放入"C:\Python34\bin\dot.exe"系统的路径,但它不起作用,我甚至创建了一个"GRAPHVIZ_DOT"有价值的新环境变量"C:\Python34\bin\dot.exe",仍然无法正常工作.我试图卸载Graphviz并点击卸载graphviz,然后重新安装它并重新安装pip,但没有任何效果.
整个回溯消息是:
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\graphviz\files.py", line 220, in render
proc = subprocess.Popen(cmd, startupinfo=STARTUPINFO)
File "C:\Python34\lib\subprocess.py", line 859, in __init__
restore_signals, start_new_session)
File "C:\Python34\lib\subprocess.py", line 1112, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用neovim与deoplete和UtilSnips.两者都需要来自nvim的Python支持.
我按照说明:help nvim_python设置支持,但输出:echo has('python')或是:echo has('python3')两者0.
在nvim-startup上,我得到了消息UltiSnips requires py >= 2.7 or py3和deoplete It requires Neovim with Python 3 support ("+python3").
我的python(2.7.10)和python3(3.4.3)都安装了自制软件.neovim模块安装在pip和之上pip3,install neovim但是即使我let g:python_host_prog在nvimrc中设置路径,nvim 也找不到它.
我不知道我能做什么了,有人知道它有什么问题吗?
所以,我正在阅读Python中的元类,以及如何使用type()三参数alter-ego来动态创建类.但是,第三个参数通常是dict初始化要创建的类的__dict__变量.
如果我要动态地创建基于使用一元类类__slots__,而不是__dict__,我怎么可能做到这一点?是type()仍然以某种方式使用覆盖一起__new__()?
作为一个FYI,我知道正确的用途__slots__,在创建大量类时节省内存而不是滥用它来强制执行类型安全的形式.
设置__metaclass__和使用以下内容的普通(新式)类的示例__dict__:
class Meta(type):
def __new__(cls, name, bases, dctn):
# Do something unique ...
return type.__new__(cls, name, bases, dctn)
class Foo(object):
__metaclass__ = Meta
def __init__(self):
pass
Run Code Online (Sandbox Code Playgroud)
在上文中,type.__new__()被调用,第四个参数(它成为当实际使用的第三)创建了一个__dict__在Foo.但是,如果我想修改Meta包括__slots__,那我也没有字典传递到type()的__new__()函数(据我所知-我没有测试过任何这还没有,只是琢磨,并试图找到某种用途 - 情景).
编辑:快速但未经测试的猜测是将值放入__slots__变量并将其传递给变量type.__new__().然后添加一个__init__()to Meta来填充__slots__dict中的变量.虽然,我不确定该dict将如何达到__init__(),因为除非在...中定义了 …
我已经加载了一个带有索引日期时间的CSV文件,这是一年中的最后一天.我想用空值填充缺少的日期作为行.
以下是我的CSV文件结构
Date Australia China
2011-01-31 4.75 5.81
2011-02-28 4.75 5.81
2011-03-31 4.75 6.06
2011-04-30 4.75 6.06
Run Code Online (Sandbox Code Playgroud)
我想用空列填充一个月内的所有日期.
我尝试了以下代码,但它无法正常工作.
import pandas as pd
df = pd.read_csv("data.csv", index_col="Date")
df.reindex(pd.date_range("2011-01-01", "2011-10-31"), fill_value="NaN")
Run Code Online (Sandbox Code Playgroud) 我有一个代码用zip压缩特定文件夹中的每个文件,但我想用7zip压缩它,那该怎么办?
这是我到目前为止:
for date in dict_date:#zipping folders and get same name like the folder
with ZipFile(os.path.join(src, '{0}.7z'.format(date)), 'w') as myzip:
for subFolder in dict_date[date]:
for fil in os.listdir(os.path.join(src, date, subFolder)):
if not fil.endswith('.7z'):
myzip.write(os.path.join(src, date, subFolder, fil))
Run Code Online (Sandbox Code Playgroud) 在给定列表中对所有组合的乘积求和的Pythonic方法是什么,例如:
[1, 2, 3, 4]
--> (1 * 2) + (1 * 3) + (1 * 4) + (2 * 3) + (2 * 4) + (3 * 4) = 35
Run Code Online (Sandbox Code Playgroud)
(对于这个例子,我已经采用了所有的两元素组合,但它可能有所不同.)
我需要生成一个list对scipy.optimize.minimize的boundry condition,就应该是这样的:
bonds = [(0., 0.99),(-30, 30),(-30, 30),(0., 30),(0., 30),(-0.99, 0.99),
(0., 0.99),(-30, 30),(-30, 30),(0., 30),(0., 30),(-0.99, 0.99),
(0., 0.99),(-30, 30),(-30, 30),(0., 30),(0., 30),(-0.99, 0.99),]
Run Code Online (Sandbox Code Playgroud)
我想知道是否有任何优雅的方式吗?
我试过了:
bonds = [[(0., 0.99),(-30, 30),(-30, 30),(0., 30),(0., 30),(-0.99, 0.99)] for i in range(3)]
Run Code Online (Sandbox Code Playgroud)
但这会产生
[[(0.0, 0.99), (-30, 30), (-30, 30), (0.0, 30), (0.0, 30), (-0.99, 0.99)],
[(0.0, 0.99), (-30, 30), (-30, 30), (0.0, 30), (0.0, 30), (-0.99, 0.99)],
[(0.0, 0.99), (-30, 30), (-30, 30), (0.0, 30), (0.0, …Run Code Online (Sandbox Code Playgroud) 我尝试在 pycharm 中打开 tif 图像并将图像转换为 numpy 数组
from PIL import Image
import numpy as np
im =Image.open('shua.tif',mode='r')
x = np.array(im)
print x
Run Code Online (Sandbox Code Playgroud)
但它打印输出如下:
<PIL.TiffImagePlugin.TiffImageFile image mode=RGB size=128x128 at 0x2F05A88>
Run Code Online (Sandbox Code Playgroud)
但如果我通过控制台运行代码,它就可以正常工作。
我想填补两条水平线上方和下方的区域.
这就是我想出的:

par(mfrow=c(1,2))
x<-seq(1,24,1)
y<-rnorm(24, 10, 2)
for(i in 1:2) {
plot(x,y,ylim=c(4,16))
lines(x,y)
abline(h=11)
abline(h=9)}
hyper<-y
hyper[hyper<11]<-11
polygon(x,hyper,col="gray")
Run Code Online (Sandbox Code Playgroud)
我的主要问题是与水平线的交叉不正确.