Python import语句只识别来自某些目录的包?

v6ylcynt  于 2023-01-14  发布在  Python
关注(0)|答案(1)|浏览(113)

这是我遇到的最奇怪的问题之一,我不知道是什么原因造成的。
我有一个from x import x语句,它只在某些文件目录中有效。
例如,从我的userroot目录

C:\Users\admin>where python
C:\scoop\shims\python.exe

C:\Users\admin>python
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:25:58) [MSC v.1500 64 bit 
(AM D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from influxdb import InfluxDBClient
>>> ^Z

我可以很好地导入包-但是当我转到桌面(它仍然是我的用户目录的一部分)时

C:\Users\admin>cd Desktop

C:\Users\admin\Desktop>where python
C:\scoop\shims\python.exe

C:\Users\admin\Desktop>python
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:25:58) [MSC v.1500 64 bit (AM D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from influxdb import InfluxDBClient
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\scoop\apps\python27\current\lib\site-packages\influxdb\__init__.py",
line 9, in <module>
    from .client import InfluxDBClient
  File "C:\scoop\apps\python27\current\lib\site-packages\influxdb\client.py", li
ne 14, in <module>
    import requests
  File "C:\scoop\apps\python27\current\lib\site-packages\requests\__init__.py",
line 43, in <module>
    import urllib3
  File "C:\scoop\apps\python27\current\lib\site-packages\urllib3\__init__.py", l
ine 8, in <module>
    from .connectionpool import (
  File "C:\scoop\apps\python27\current\lib\site-packages\urllib3\connectionpool.
py", line 3, in <module>
    import logging
  File "logging.py", line 4, in <module>
    from influxdb import InfluxDBClient
ImportError: cannot import name InfluxDBClient
>>> ^Z

因此,进入我的桌面目录,虽然仍然使用相同的python.exe,将不允许我导入相同的包。
更奇怪的是,如果我看一下sys.path

C:\Users\admin\Desktop>python
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:25:58) [MSC v.1500 64 bit (AM
D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 'C:\\scoop\\apps\\python27\\current\\python27.zip', 'C:\\scoop\\apps\\pytho
n27\\current\\DLLs', 'C:\\scoop\\apps\\python27\\current\\lib', 'C:\\scoop\\apps
\\python27\\current\\lib\\plat-win', 'C:\\scoop\\apps\\python27\\current\\lib\\l
ib-tk', 'C:\\scoop\\apps\\python27\\current', 'C:\\scoop\\apps\\python27\\curren
t\\lib\\site-packages']
>>> ^Z

对于根目录-

C:\Users\admin\Desktop>cd..

C:\Users\admin>python
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:25:58) [MSC v.1500 64 bit (AM
D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', 'C:\\scoop\\apps\\python27\\current\\python27.zip', 'C:\\scoop\\apps\\pytho
n27\\current\\DLLs', 'C:\\scoop\\apps\\python27\\current\\lib', 'C:\\scoop\\apps
\\python27\\current\\lib\\plat-win', 'C:\\scoop\\apps\\python27\\current\\lib\\l
ib-tk', 'C:\\scoop\\apps\\python27\\current', 'C:\\scoop\\apps\\python27\\curren
t\\lib\\site-packages']
>>> ^Z

你可以看到它们是完全一样的。我想这可能是一个环境变量的问题,但是为什么它在userroot上工作而在useroot/Desktop上不工作呢?这似乎不仅仅是influxdb错误,BeautifulSoup也做同样的事情。
这是在一个管理员帐户上从一个提升的cmd提示符运行的。我试过卸载和重新安装python。我试过python2和python3。我试过设置PYTHONPATH
有什么想法吗?

qnakjoqk

qnakjoqk1#

我迟了答复,但我想我应该为其他面临同样问题的人答复。我也面临同样的问题

from influxdb import InfluxDBClient

然后我试着

pip install influxdb-client

然后

from influxdb_client import InfluxDBClient

对我很有效希望这能帮上忙。

相关问题