gpt4 book ai didi

Python 2 imp - ValueError : Attempted relative import in non-package

转载 作者:太空宇宙 更新时间:2023-11-03 20:54:16 24 4
gpt4 key购买 nike

我正在尝试使用 imp 库导入一个库,我的代码如下所示:

import imp

PyPDF2 = imp.load_source('PyPDF2', '/Python Projects/econquizz/PyPDF2-master/PyPDF2/__init__.py')
pdfFileObj = open('./Chapters/Chapter-3_5.pdf', 'rb')

当我尝试运行此代码时,出现以下错误:

Traceback (most recent call last):
File "brains_3.py", line 3, in <module>
PyPDF2 = imp.load_source('PyPDF2', '/Python Projects/econquizz/PyPDF2-master/PyPDF2/__init__.py')
File "/Python Projects/econquizz/PyPDF2-master/PyPDF2/__init__.py", line 1, in <module>
from .pdf import PdfFileReader, PdfFileWriter
ValueError: Attempted relative import in non-package

有人知道如何解决这个问题吗?

非常感谢您的帮助。

最佳答案

我认为您需要指定包本身作为您的参数:

PyPDF2 = imp.load_source('PyPDF2', '/Python Projects/econquizz/PyPDF2-master/PyPDF2/')

更好的是,将 /Python Projects/econquizz/PyPDF2-master 放入 PYTHONPATH 环境变量中,并使用普通的 import 语句(导入PyPDF2)。

<小时/><小时/>

后续:

下面是一个记录,展示了它如何在我的 Ubuntu 系统上工作:

$ mkdir /tmp/demonstration
$ cd /tmp/demonstration
$ wget https://files.pythonhosted.org/packages/b4/01/68fcc0d43daf4c6bdbc6b33cc3f77bda531c86b174cac56ef0ffdb96faab/PyPDF2-1.26.0.tar.gz
$ tar -zxvf PyPDF2-1.26.0.tar.gz
$ export PYTHONPATH=/tmp/demonstration/PyPDF2-1.26.0/
$ python2
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import PyPDF2
>>> print(PyPDF2)
<module 'PyPDF2' from '/tmp/demonstration/PyPDF2-1.26.0/PyPDF2/__init__.pyc'>
>>>
>>> help(PyPDF2)
Help on package PyPDF2:

NAME
PyPDF2

FILE
/tmp/demonstration/PyPDF2-1.26.0/PyPDF2/__init__.py

PACKAGE CONTENTS
_version
filters
generic
merger
pagerange
pdf
utils
xmp
[...]

您不需要完全像我一样这样做。 (特别是,不要在/tmp 中执行此操作,除非您真的不想保留它!)关键是查看我放置模块的实际目录,并查看我确实将其放入 $ PYTHONPATH,正确,因此 python 能够找到它并加载它。

我没有阅读作者发布的有关如何正确安装它的任何说明。当像我在这里那样从源代码运行时,某些模块实际上无法正常工作。有些模块不需要任何特殊安装,并且可以以其源代码分发的形式正常工作。

关于Python 2 imp - ValueError : Attempted relative import in non-package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56115565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com