python编写代码时零_python – KeyError:运行打包代码时为0L

我有一个名为rra.py的脚本,它具有以下skelton结构:

usn=""

usnl=[]

from bs4 import BeautifulSoup

import re

import asys

import glob

import os

import sys

import sys

def inputIndex():

#some processsing

def getval():

#some processing

def parsehtml():

#some processsing

def ret():

#some processing

def main():

inputIndex()

ret()

parsehtml()

getval()

print "watsuup"

asys.Compavg()

asys.compSub()

print "nearly done"

return 0

if __name__ == '__main__':

inputIndex()

main()

asys.Compavg()

asys.compSub()

我在上面的脚本rra.py中导入了另一个脚本asys.py,其中包含以下内容.

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

from scipy import stats

import statsmodels.api as sm

from numpy.random import randn

import matplotlib as mpl

import seaborn as sns

sns.set_color_palette("deep", desat=.6)

mpl.rc("figure", figsize=(8, 4))

def Compavg():

data=Total()

markMax=[]

markAvg=[]

N = 5

ind = np.arange(N)

width = 0.35

fig = plt.figure()

ax = fig.add_subplot(111)

markMax.extend((data["Total"].max(),data["Total.1"].max(),data["Total.2"].max(),data["Total.3"].max(),data["Total.4"].max()))

markAvg.extend((data["Total"].mean(),data["Total.1"].mean(),data["Total.2"].mean(),data["Total.3"].mean(),data["Total.4"].mean()))

rects1 = ax.bar(ind, markMax, width, color='black')

rects2 = ax.bar(ind+width, markAvg, width, color='green')

ax.set_xlim(-width,len(ind)+width)

ax.set_ylim(0,120)

ax.set_ylabel('Marks')

ax.set_title('Max, Mean and Your Marks')

xTickMarks = ['Subject'+str(i) for i in range(1,6)]

ax.set_xticks(ind+width)

xtickNames = ax.set_xticklabels(xTickMarks)

plt.setp(xtickNames, rotation=10, fontsize=10)

ax.legend( (rects1[0], rects2[0]), ('Max', 'Mean') )

plt.show()

print "finished reading 1"

def compSub():

#max_data = np.r_[data["Total"]].max()

#bins = np.linspace(0, max_data, max_data + 1)

data=Total()

print data['Total']

plt.hist(data['Total'],linewidth=0, alpha=.7)

plt.hist(data['Total.1'],linewidth=0,alpha=.7)

plt.hist(data['Total.2'],linewidth=0,alpha=.7)

plt.hist(data['Total.3'],linewidth=0,alpha=.7)

plt.hist(data['Total.4'],linewidth=0,alpha=.7)

plt.title("Total marks Histogram")

plt.xlabel("Value")

plt.ylabel("Frequency")

plt.show()

print "finished reading 2"

def Total():

print "going to read"

data=pd.read_csv("output11cs.csv")

df3=data[['Total','Total.1','Total.2','Total.3','Total.4','Total.5','Total.6','Total.7']]

data["Main Total"]=df3.sum(axis=1)

data = data.dropna()

data.reset_index(drop=True)

return data

#compSub()

#Compavg()

当我通过使用python rra.py执行virtualenv之外的rra.py(甚至在virtualenv内)时,它执行完美并绘制asys.py中给出的图形和直方图.

然后我创建了一个’setup.py’文件来打包它,如下所示:

from ez_setup import use_setuptools

use_setuptools()

from setuptools import setup, find_packages

from setuptools.command.test import test as TestCommand

import vturra

import sys

class PyTest(TestCommand):

def finalize_options(self):

TestCommand.finalize_options(self)

self.test_args = []

self.test_suite = True

def run_tests(self):

import pytest

errcode = pytest.main(self.test_args)

sys.exit(errcode)

setup(name="vturra",

version=vturra.__version__,

license='Apache Software License',

tests_require=['pytest'],

install_requires=['matplotlib>=1.2.1',

'pandas',

'numpy',

'scipy',

'beautifulsoup',

'requests',

'patsy',

'seaborn==0.2.1',

'BeautifulSoup4'

],

cmdclass={'test': PyTest},

description="Downloads results from VTU website and analyzes the result",

long_description=open('README.md').read(),

author="Muhammed Thaha",

author_email='mthaha1989@gmail.com',

download_url='https://github.com/stormvirux/vturra',

packages=find_packages(exclude='tests'),

package_data={'vturra': ['data/*.xml']},

include_package_data=True,

platforms='any',

test_suite='vturra.test.test_vturra',

classifiers = [

'Programming Language :: Python',

'Development Status :: 1 - Beta',

'Natural Language :: English',

'Environment :: Web Environment',

'Intended Audience :: Developers',

'License :: OSI Approved :: Apache Software License',

'Operating System :: OS Independent',

'Topic :: Internet :: WWW/HTTP :: Dynamic Content',

],

extras_require={

'testing': ['pytest'],

},

entry_points={

"console_scripts": [

"vturra=vturra.rra:main"

#"pip%s=pip:main" % sys.version[:1],

#"pip%s=pip:main" % sys.version[:3],

],

}

)

我在virtualenv中使用python setup.py install安装了软件包,安装完成后一切正常.现在,当我执行包vturra时,我收到以下错误:

Traceback (most recent call last):

File "asys.py", line 65, in

compSub()

File "asys.py", line 46, in compSub

plt.hist(data['Total'],linewidth=0, alpha=.7)

File "/home/storm/Documents/lol/local/lib/python2.7/site-packages/matplotlib/pyplot.py", line 2827, in hist

stacked=stacked, **kwargs)

File "/home/storm/Documents/lol/local/lib/python2.7/site-packages/matplotlib/axes.py", line 8249, in hist

if isinstance(x, np.ndarray) or not iterable(x[0]):

File "/home/storm/Documents/lol/local/lib/python2.7/site-packages/pandas/core/series.py", line 491, in __getitem__

result = self.index.get_value(self, key)

File "/home/storm/Documents/lol/local/lib/python2.7/site-packages/pandas/core/index.py", line 1032, in get_value

return self._engine.get_value(s, k)

File "index.pyx", line 97, in pandas.index.IndexEngine.get_value (pandas/index.c:2661)

File "index.pyx", line 105, in pandas.index.IndexEngine.get_value (pandas/index.c:2476)

File "index.pyx", line 149, in pandas.index.IndexEngine.get_loc (pandas/index.c:3215)

File "hashtable.pyx", line 382, in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:6450)

File "hashtable.pyx", line 388, in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:6394)

KeyError: 0L

但是,如果我在main()中注释掉函数调用asys.compSub(),它的工作没有任何错误.

UPDATE

该函数作为virtualenv之外的独立脚本执行时效果很好,但在virtualenv中你会得到上述错误.

我相信这是virtualenv的一个问题呢?

最佳答案 终于解决了.这是最新版本的thepandas和matplotlib之间的问题.

与拥有0.13.0的virtualenv相比,Global System pandas版本为0.10.所以我在virtualenv降级到0.10.0.

现在它的工作完美.

基本上它与matplotlib和pandas的API不兼容> = 0.13. plt.hist与系列目前将面临这个问题.

所以要么使用数据[‘Total.1’].hist()

或者传入值plt.hist(data [‘Total.1’].values,….)

或将pandas降级到小于0.13的版本.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/340535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python读取sqlserver的数据_Python:使用并发未来进程P读取sqlserver数据

我是一个从未使用过任何并行处理方法的新手。我希望从SQL Server读取大量数据(即至少200万行),并希望使用并行处理来加快读取速度。下面是我使用并发未来进程池进行并行处理的尝试。在class DatabaseWorker(object):def __init__(self, connection_string, n, resul…

OAuth 2.0 Java指南:5分钟保护您的应用程序安全

使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证,管理和保护。 今天尝试Okta。 现代应用程序依赖于用户身份验证,但是它可能给Java开发人员带来困难的挑战,以及一系列特定于框…

flutter从0到1构建大前端应用 pdf_前端骨架屏都是如何生成的

作者:SHERlocked93转发链接:https://mp.weixin.qq.com/s/j2XzwLPnalDCNaKkfjH-0Q前言相比于早些年前后端代码紧密耦合、后端工程师还得写前端代码的时代,如今已发展到前后端分离,这种开发方式大大提升了前后端项目的可维护性与开发…

java 查找排序_Java类库中的一些常用的查找排序

查找是一种试图在数据集或者数组中发现某一目标值的操作排序是使列表中的元素按照自然顺序进行排序的一种操作Java的类库中包含来一些可以实现对数组或者列表实现查找和排序的方法。例如:Arrays.binarySearch和Collections.sort一个比较器对象可以用来定义对对象进行…

python保存所有变量值_如何在当前python会话中保存所有变量?

繁星coding这是使用spyderlib函数保存Spyder工作区变量的方法#%% Load data from .spydata filefrom spyderlib.utils.iofuncs import load_dictionaryglobals().update(load_dictionary(fpath)[0])data load_dictionary(fpath)#%% Save data to .spydata filefrom spyderlib…

java jtextarea 滚动条_java 在JTextArea中显示 滚动条

我的代码为什么不显示垂直滚动条是那里错了么如果有错求高手修改importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;importjava.util.*;publicclassCai{privateJFrame_fra...我的代码为什么不显示垂直滚动条 是那里错了么 如果有错 求高手修改import javax.swing.*…

zipkin 自定义采样率_分组,采样和批处理– Java 8中的自定义收集器

zipkin 自定义采样率在第一篇文章的后续部分,这一次我们将编写一些更有用的自定义收集器:用于按给定的标准进行分组,采样输入,批量处理以及在固定大小的窗口上滑动。 分组(计数事件,直方图) 假…

linux python版本升级和系统更新_Linux 下升级python和安装pip

1、 首先确认Linux操作系统中自带的python 版本时候与自己所需要的版本一致3、 解压tar -zxvf Python-2.7.11.tgz进入Python-2.7.11目录 输入./configuremakemake install4、 此时查看python版本还是系统默认的版本执行:mv /usr/bin/python /usr/bin/python2.6ln…

成为Java流大师–第1部分:创建流

在许多情况下,声明性代码(例如,具有Streams的功能组合)可提供出色的代码指标。 通过本动手实验文章系列进行编码,并成为Java Streams的主教练,从而成为一名更好的Java程序员。 Streams的整个想法是代表一个…

python做一副54扑克牌发牌技巧_德州扑克讲堂:高级技巧 胜率之摊牌胜率的算法...

行动胜率的算法。行动获胜是德州扑克中唯二的获胜方式,掌握了对手的弃牌率的话,就算手里完全没牌也可以轻松获胜。然而具体打出对手稳定的弃牌则是一种高级技巧。对于初学玩家,推荐掌握好摊牌胜率的算法,稳当地用摊牌来获胜。胜率…

java 6 基础教程_Java小白入门教程(6)——循环语句

提纲:1、循环结构2、while循环3、do-while循环4、for循环5、break语句6、continue语句7、循环嵌套8、作业一、循环结构1.1 概念条件满足,某些代码会被反复多次的执行。条件不成立了,循环结束。0-n次。1.2 为什么使用循环开发中可能会把某些代…

事件触发控制_SystemVerilog线程控制与通信

01线程控制1.概述线程,即独立运行的程序;线程需要被触发执行,可以结束或者不结束;在module中的initial和always,都可以看作独立的线程,他们在仿真0时刻开始,而选择结束或者不结束;在…

java writablesheet_jxl加边框,jxl合并单元格,单元格的设置,单元格居中

jxl加边框WritableWorkbook wwb Workbook.createWorkbook(os);WritableSheet ws wwb.createSheet( "TestSheet1 ", 0);WritableFont wf newWritableFont(WritableFont.TIMES, 18, WritableFont.BOLD, true);WritableCellFormat wcf new WritableCellFormat(wf);w…

java必读书籍_最佳5本Java性能调优书籍–精选,必读

java必读书籍为什么Java开发人员应该阅读有关性能调优的书? 当我很久以前第一次面对这个问题时,我以为以后会做,但是我很长一段时间都没有回过头来。 仅当我在用Java编写的任务关键型服务器端财务应用程序中遇到严重的性能和可伸缩性问题时&a…

python为什么装不了pip_python自带pip用不了怎么办

可以通过以下命令来判断是否已安装:pip --version如果你还未安装,则可以使用以下方法来安装:$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本$ sudo python get-pip.py # 运行安装脚本注意:用哪个…

成为Java流大师–第4部分:数据库流

SQL一直是一种声明性语言,而Java长期以来势在必行。 Java流改变了游戏规则。 通过本动手文章编写您的方式,并学习如何使用Java流对RDBMS数据库执行声明性查询,而无需编写任何SQL代码。 您会发现,Java流和SQL命令的动词之间有着惊人…

unsafehelper java_Java 9中将移除 Sun.misc.Unsafe

灾难将至,Java 9中将移除 Sun.misc.UnsafeOracle 正在计划在Java 9中去掉 sun.misc.Unsafe API。 这绝对将是一场灾难,有可能会彻底破坏整个 java 生态圈。 几乎每个使用 java开发的工具、软件基础设施、高性能开发库都在底层使用了 sun.misc.Unsafe。 下…

python 代码格式规范脚本_Python编码规范

Python自动化测试代码编码规范一、适用范围:本规则基础为Python标准PEP8,在此基础上加了我司测试部编码规范,适用于测试部所有Python脚本编写是采用的规则.二、编码:所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -…

java 根据类名示例化类_如何使用示例从Java中的类路径加载资源

java 根据类名示例化类Java中的类路径不仅用于加载.class文件,而且还可以用于加载资源,例如属性文件,图像,图标,缩略图或任何二进制内容。 Java提供了API来将这些资源读取为InputStream或URL。 假设您在项目的config文…

java课程设计进程管理_Java课设总结(个人版)

使用物理引擎JBox2D完成游戏关卡的各个物理状态模拟根据物理引擎设计Bird,Pig,Brick等游戏中出现的可运动刚体类建立JBox2d的工具类以实现###本人对这次课设的看法与吐槽 1.课设内容的脑洞是我在看完17级学长的游戏课设之后想出的 当时还没学java网络编程的内容,误以…