Python 导入错误-无法从y导入名称x

Python 导入错误-无法从y导入名称x,python,class,import,Python,Class,Import,在python模块上导入类时遇到问题 以下是我的目录结构: TestMap +lib +vendors +testing - _init.py - products.py - _init_py. - notifications.py - scraper.py - utils.py -main.py 我从scraper.py开始,尝试在products.py上获取函数,它是vendors->testing->

在python模块上导入类时遇到问题

以下是我的目录结构:

TestMap
  +lib
    +vendors
      +testing
       - _init.py
       - products.py
    - _init_py.
    - notifications.py
    - scraper.py
    - utils.py
  -main.py
我从
scraper.py
开始,尝试在products.py上获取函数,它是
vendors->testing->products.py

from .vendors.testing.products import TestProducts
我想做的是:

ImportError: cannot import name 'TestProducts' from 'lib.vendors.testing.products' (C:\Users\Annoynmous\Desktop\TestMap\lib\vendors\testing\products.py)
在products.py中,类名是:

class TestProducts():

而且我无法掌握我到底做错了什么?

使用
pythonpath
在项目中设置源目录:

export PATH=$PATH:/home/user/somepath/TestMap 
并从该源路径导入模块

from lib.vendors.testing.products import TestProducts

或者使用
\uuuu init\uuuuuuuuupy.py
文件定义内部模块目录,并使用直接模块名导入模块。

使用
pythonpath
在项目中设置源目录:

export PATH=$PATH:/home/user/somepath/TestMap 
并从该源路径导入模块

from lib.vendors.testing.products import TestProducts

或者使用
\uuuu init\uuuuuuuuuuuuuuuuuuuupy
文件定义内部模块目录,并使用直接模块名导入模块。

scraper.py中尝试此操作

from vendors.testing.products import TestProducts


使用
self.product
访问类scraper中TestProducts的任何功能。

scraper.py中尝试此操作

from vendors.testing.products import TestProducts


使用
self.product
访问类刮板中TestProducts的任何功能。

嘿,我不确定在哪里添加第一行
export
?它是在.py文件中还是在.py文件中?但是,难道不可能按照我尝试的方式调用函数吗?在您的术语中,它将定义
pythonpath
,您将能够从该路径导入模块。嘿,我不确定在哪里添加第一行
export
?它是在.py文件中还是在.py文件中?但是,难道不可能以我尝试的方式调用函数吗?在您的术语中,它将定义
pythonpath
,您将能够从该路径导入模块。第一行确实指出
modulenofounderror:没有名为“vendors”的模块
打印(sys.path)
检查目录路径是否包含在内。如果不
sys.path.insert(0,“path/to/lib directory/”)
Doing sys.path,我可以看到文件夹的开头。在本例中,只需C://Users//hattermous//Desktop//TestMap,然后是不同的python文件,这意味着您需要从lib导入,即
import lib.vendors.testing.products as product
Ohhh当您编程太多时会发生什么:(但它可以工作!)第一行确实指出,
ModuleNotFoundError:没有名为“vendors”的模块
print(sys.path)
来检查目录路径是否包含在内。如果不
sys.path.insert(0,“path/to/lib directory/”)
Doing sys.path,我可以看到文件夹的开头。在本例中,只需C://Users//hattermous//Desktop//TestMap,然后是不同的python文件,这意味着您需要从lib导入,即
import lib.vendors.testing.products as product
Ohhh当您编程太多时会发生什么:(但它可以工作!)