这是我遇到的一个棘手的问题,我无法弄清楚是什么导致了它。
我有一个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
。
有什么想法吗?