当前位置: 首页 > 面试题库 >

FileNotFoundError:打包PyPI时出现[Errno 2]

李兴庆
2023-03-14
问题内容

我在https://test.pypi.org中上传了一个简单的python包。当我用pip下载此文件并尝试运行时,我得到了FileNotFoundError: [Errno 2] File b'data/spam_collection.csv' does not exist: b'data/spam_collection.csv'。之前我在打包时上传csv文件时遇到问题。请参阅无法将csv文件上传到test.pypi.org中的问题。现在,用pip安装软件包后,我运行pip show -f bigramspamclassifier。我得到列出的csv文件。因此,我相信文件已经上传。我认为问题出在读取软件包中python文件中的文件。SpamClassifier.py中的csv文件的路径应该是什么?

点显示-f bigramspamclassifier

Version: 0.0.3
Summary: A bigram approach for classifying Spam and Ham messages
Home-page: ######
Author: #####
Author-email: #######
Location: /home/kabilesh/PycharmProjects/TestPypl3/venv/lib/python3.6/site-packages
Requires: nltk, pandas
Required-by: 
Files:
  bigramspamclassifier-0.0.3.dist-info/INSTALLER
  bigramspamclassifier-0.0.3.dist-info/LICENSE
  bigramspamclassifier-0.0.3.dist-info/METADATA
  bigramspamclassifier-0.0.3.dist-info/RECORD
  bigramspamclassifier-0.0.3.dist-info/WHEEL
  bigramspamclassifier-0.0.3.dist-info/top_level.txt
  bigramspamclassifier/SpamClassifier.py
  bigramspamclassifier/__init__.py
  bigramspamclassifier/__pycache__/SpamClassifier.cpython-36.pyc
  bigramspamclassifier/__pycache__/__init__.cpython-36.pyc
  bigramspamclassifier/data/spam_collection.csv

我的项目文件结构

在此处输入图片说明

SpamClassifier.py文件中csv的路径#这是我想知道的

    def classify(self):
    fullCorpus = pd.read_csv("data/spam_collection.csv", sep="\t", header=None)
    fullCorpus.columns = ["lable", "body_text"]

问题答案:

您的脚本正在尝试spam_collection.csv从相对路径加载文件。相对路径是相对于python调用位置而 不是 源文件的位置加载的。

这意味着从bigramspamclassifier目录运行模块时,它将起作用。但是,一旦模块pip安装完毕,文件将不再与您从中运行代码的位置相对(文件将被埋入已安装的库中的某个位置)。

您可以通过执行类似以下操作来相对于源文件进行加载:

import os
this_dir, this_filename = os.path.split(__file__)
DATA_PATH = os.path.join(this_dir, "data", "spam_collection.csv")
fullCorpus = pd.read_csv(DATA_PATH, sep="\t", header=None)


 类似资料:
  • java新手提问,请各位大佬帮忙解答为谢!!! 在java中引入第三方jar包,使用gradle将我的项目打包成可执行的jar时并运行时报错: 第三方给的这个jar包结构如下: 我理解NoClassDefFoundError:javax/xml/transform/e应该是class文件的路径不对,按道理是jar包中class的路径javax/xml/transform/e,但是为什么看到的是ja

  • 我创建了本地pypi服务器。我上传了我的项目需要的软件包,但是当尝试执行

  • 问题内容: 有一个用于PyPI的JSON API, 它允许获取包的数据: 但是,是否可以通过GET调用获取所有PyPI软件包(或最新软件包)的列表? 问题答案: 最简单的方法是使用PyPI上的简单索引,该索引列出了所有软件包,而没有开销。然后,您可以通过对问题中提到的URL执行GET请求来分别请求每个包的JSON。

  • 我一直在尝试让openpyxl与py魅力一起工作,但是excel文档出现了一个问号,当我试图运行代码时,它说filenotfunderror 我希望输出是单元格值,但我得到的是: 回溯(最近一次调用):文件“C:/Users/nicol/.PyCharmCE2019.1/config/scratches/excel_work.py”,第3行,wb=xl。加载工作簿(“transactions.xl

  • 问题内容: 现有2个版本的java系统,1.6版本无法卸载(dll无法运行) 求大神拯救!小白一枚想学习安卓系统 问题答案: 把你想用的那个版本设置环境变量,设置JAVA_HOME=”你安装的JDK路径”

  • 我按照指南如何向PyPI提交一个包来提交一个包。它抛出了以下错误: 我的. pypic文件上下文是: 我的操作系统环境是 原因是什么,如何修复?