首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >皮亚德:安装得很好,但说找不到底座

皮亚德:安装得很好,但说找不到底座
EN

Stack Overflow用户
提问于 2016-10-12 16:51:51
回答 1查看 4.2K关注 0票数 3

这让我很困惑。我使用pip安装了pyad,一切看起来都很好:

代码语言:javascript
复制
C:\WINDOWS\system32>pip install pyad
Collecting pyad
  Using cached pyad-0.5.16.tar.gz
Requirement already satisfied (use --upgrade to upgrade): setuptools in c:\python35\lib\site-packages (from pyad)
Requirement already satisfied (use --upgrade to upgrade): pywin32 in c:\python35\lib\site-packages (from pyad)
Installing collected packages: pyad
  Running setup.py install for pyad ... done
Successfully installed pyad-0.5.16

但是,当我尝试使用它时,我会遇到一个错误,抱怨找不到附件:

代码语言:javascript
复制
C:\WINDOWS\system32>python
Python 3.5.1 (v3.5.1:37a07cee5969, Dec  6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from pyad import aduser
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python35\lib\site-packages\pyad\__init__.py", line 1, in <module>
    from adbase import set_defaults as pyad_setdefaults
ImportError: No module named 'adbase'
>>> import pyad
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python35\lib\site-packages\pyad\__init__.py", line 1, in <module>
    from adbase import set_defaults as pyad_setdefaults
ImportError: No module named 'adbase'

这很奇怪,因为如果我尝试卸载pyad,或者如果我检查了网站包目录,adbase肯定在那里:

代码语言:javascript
复制
C:\WINDOWS\system32>pip uninstall pyad
Uninstalling pyad-0.5.16:
  c:\python35\lib\site-packages\pyad-0.5.16-py3.5.egg-info
  c:\python35\lib\site-packages\pyad\__init__.py
  c:\python35\lib\site-packages\pyad\__pycache__\__init__.cpython-35.pyc
  c:\python35\lib\site-packages\pyad\__pycache__\adcomputer.cpython-35.pyc
  c:\python35\lib\site-packages\pyad\__pycache__\addomain.cpython-35.pyc
  c:\python35\lib\site-packages\pyad\__pycache__\adgroup.cpython-35.pyc
  c:\python35\lib\site-packages\pyad\__pycache__\adquery.cpython-35.pyc
  c:\python35\lib\site-packages\pyad\__pycache__\adsearch.cpython-35.pyc
  c:\python35\lib\site-packages\pyad\__pycache__\pyad.cpython-35.pyc
  c:\python35\lib\site-packages\pyad\adbase.py
  c:\python35\lib\site-packages\pyad\adcomputer.py
  c:\python35\lib\site-packages\pyad\adcontainer.py
  c:\python35\lib\site-packages\pyad\addomain.py
  c:\python35\lib\site-packages\pyad\adgroup.py
  c:\python35\lib\site-packages\pyad\adobject.py
  c:\python35\lib\site-packages\pyad\adquery.py
  c:\python35\lib\site-packages\pyad\adsearch.py
  c:\python35\lib\site-packages\pyad\aduser.py
  c:\python35\lib\site-packages\pyad\pyad.py
  c:\python35\lib\site-packages\pyad\pyadconstants.py
  c:\python35\lib\site-packages\pyad\pyadexceptions.py
  c:\python35\lib\site-packages\pyad\pyadutils.py
Proceed (y/n)?

pyad目录内容

我真的不知道还能尝试什么。我已经在提升的命令提示符下运行了所有东西,所以这不是权限问题。我甚至尝试下载pyad并使用setup.py安装它,但我也遇到了同样的问题。adbase绝对存在,我不明白为什么Python没有找到它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-12 17:06:30

那是个小虫子。他们正在导入adbase,就好像它是一个独立的模块或包,这就是为什么它不能工作的原因。解决这个问题的正确方法是将导入更改为绝对导入from pyad.adbase import ...或相对导入from .adbase import ...

但是,如果您检查Github上的master分支,您将看到它们实际上已经修复了它。但这还不是全部,如果您检查他们的setup.py,您会发现在Github上的版本是0.5.15,而在PyPI上的最后一个版本,也就是您安装的版本是0.5.16。真奇怪。

我建议您直接从Github安装软件包,这应该可以解决这个问题。为此,首先卸载pyad,然后运行

代码语言:javascript
复制
pip install https://github.com/zakird/pyad/archive/master.zip
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40004147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档