【问题标题】:Can't import modules in Python?无法在 Python 中导入模块?
【发布时间】:2020-07-02 03:06:47
【问题描述】:

我正在按照说明使用来自:https://github.com/eBay/ebay-oauth-python-client的文件

我在导入时遇到错误:oauth2api、credentialutil 和模型。这是上述网站中的第 3 步。

import yaml, json
sys.path.insert(0, '/Users/kyle/PycharmProjects/app/ebay-oauth-python-client-master/oauthclient/model')
sys.path.insert(1, '/Users/kyle/PycharmProjects/app/ebay-oauth-python-client-master/test')
sys.path.insert(2, '/Users/kyle/PycharmProjects/app/ebay-oauth-python-client-master/oauthclient')
import credentialutil
import model
import oauth2api
print(sys.path)

错误信息:

C:\Users\kyle\AppData\Local\Programs\Python\Python38-32\python.exe C:/Users/kyle/PycharmProjects/app/app.py 回溯(最近一次通话最后): 文件“C:/Users/kyle/PycharmProjects/app/app.py”,第 10 行,在 导入凭证工具 文件“/Users/kyle/PycharmProjects/app/ebay-oauth-python-client-master/oauthclient\credentialutil.py”,第 20 行,在 from model.model 导入环境,凭证 ModuleNotFoundError:没有名为“model.model”的模块; 'model' 不是一个包

进程以退出代码 1 结束

如果我只导入模型,代码就会运行:

import yaml, json
sys.path.insert(0, '/Users/kyle/PycharmProjects/app/ebay-oauth-python-client-master/oauthclient/model')
sys.path.insert(1, '/Users/kyle/PycharmProjects/app/ebay-oauth-python-client-master/test')
sys.path.insert(2, '/Users/kyle/PycharmProjects/app/ebay-oauth-python-client-master/oauthclient')
import model
print(sys.path)

没有错误信息:

C:\Users\kyle\AppData\Local\Programs\Python\Python38-32\python.exe C:/Users/kyle/PycharmProjects/app/app.py ['/Users/kyle/PycharmProjects/app/ebay-oauth-python-client-master/oauthclient/model', '/Users/kyle/PycharmProjects/app/ebay-oauth-python-client-master/test', ' /Users/kyle/PycharmProjects/app/ebay-oauth-python-client-master/oauthclient', 'C:\Users\kyle\PycharmProjects\app', 'C:\Users\kyle\PycharmProjects\app', 'C :\Users\kyle\AppData\Local\Programs\Python\Python38-32\python38.zip', 'C:\Users\kyle\AppData\Local\Programs\Python\Python38-32\DLLs', 'C:\用户\kyle\AppData\Local\Programs\Python\Python38-32\lib', 'C:\Users\kyle\AppData\Local\Programs\Python\Python38-32', 'C:\Users\kyle\AppData\ Local\Programs\Python\Python38-32\lib\site-packages', 'C:\Users\kyle\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pymodel']

进程以退出代码 0 结束

我在 oauthclient 下也得到了一条绿线,我不知道为什么。一切都拼写正确。

sys.path.insert(0, '/Users/kyle/PycharmProjects/app/ebay-oauth-python-client-master/oauthclient/model')
sys.path.insert(2, '/Users/kyle/PycharmProjects/app/ebay-oauth-python-client-master/oauthclient')

【问题讨论】:

    标签: python python-3.x oauth pycharm ebay-api


    【解决方案1】:

    我可以看到两个问题。

    首先,您似乎在 Windows 下使用 Python,但您尝试将 MacOS 路径插入到sys.path。您确定您的文件系统中确实存在像 /Users/kyle/... 这样的路径吗?

    其次,你只需要插入父路径,即/path/to/ebay-oauth-python-client/oauthclient到你的sys.path。在我的本地测试中,这是可行的:

    import yaml, json
    import sys
    sys.path.insert(0, r"C:\Users\guosh\Downloads\test\ebay-oauth-python-client\oauthclient")
    import credentialutil
    import model
    import oauth2api
    print(sys.path)
    

    但是,我建议您将包作为一个整体导入,如下所示:

    import yaml, json
    import sys
    sys.path.insert(0, r"C:\Users\guosh\Downloads\test\ebay-oauth-python-client")
    import oauthclient
    print(sys.path)
    

    【讨论】:

      猜你喜欢
      • 2014-08-09
      • 2022-09-27
      • 2013-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 2021-12-15
      相关资源
      最近更新 更多