代码之家  ›  专栏  ›  技术社区  ›  sdbbs

在Python中从模块文件导入特定项,而忽略同一模块文件中的其他导入?

  •  0
  • sdbbs  · 技术社区  · 3 年前

    假设我有这个文件 lib_my.py :

    import smbus
    
    main_array = [1, 10, 20, 100]
    

    现在,我通常在Raspberry Pi Raspbian上运行这个,在那里我有 smbus 包裹

    然而,现在进行测试,我想导入 main_array 在Windows上,我没有 smbus公司 (我也不确定它是否可以安装)-结果是:

    $ python3
    Python 3.9.11 (main, Mar 18 2022, 16:54:01)  [GCC 11.2.0 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    
    >>> from lib_my import main_array
    
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "C:/msys64/tmp/lib_my.py", line 1, in <module>
        import smbus
    ModuleNotFoundError: No module named 'smbus'
    >>>
    

    所以,即使 主_阵列 只是一个基元(整数列表),Python仍然尝试导入 整体 图书馆第一,正如所料,窒息了 import smbus .

    有没有办法指示Python导入 只有 请求的项(基元对象、类、函数),忽略同一文件中的其他导入(与导入的项无关)?

    1 回复  |  直到 3 年前