xlrd import issue with Python 2.7

2020-02-28 03:41发布

问题:

I have an assignment to read excel data in Python. I have Python 2.7 installed. I tried installing xlrd0.8.0 with the following commands in Windows.

C:\Python27\xlrd-0.8.0>python setup.py build
running build
running build_py
creating build
creating build\lib
creating build\lib\xlrd
copying xlrd\biffh.py -> build\lib\xlrd
....


C:\Python27\xlrd-0.8.0>python setup.py install
running install
running build
running build_py
running build_scripts
running install_lib
running install_scripts
running install_egg_info
Writing C:\Python27\Lib\site-packages\xlrd-0.8.0-py2.7.egg-info

I don't get any error message while installing. I also see xlrd-0.8.0 folder in site-packages in /lib folder...

But when I try to import it, Python is not able to recognize it...

>>> import xlrd
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
import xlrd
ImportError: No module named xlrd

Can you suggest how to find the issue?

回答1:

How to reproduce and fix this error:

Open the python interpreter, try to import xlrt, you get an error:

python
>>> import xlrt
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named xlrt

1. Install, or make sure pip is installed:

What is the official "preferred" way to install pip and virtualenv systemwide?

2. Install xlrd

pip install xlrd

Protip: If you feel you have to use sudo pip install .... to get this to work then you need to stop and learn why this is dangerous. See: What are the risks of running 'sudo pip'?

Workarounds are to install pip using a certain user: pip install --user myuser ... use your own best judgment here. Make sure the directory your pip is operating in is owned by the user trying to install packages there. Use: chown -R $USER /Library/Python/2.7/site-packages.

3. Test it on the python interpreter:

python
>>> import xlrd

>>> type(xlrd)
<type 'module'>
>>>

Now it is imported it without a problem, xlrd is a python module.

Troubleshooting:

If your PYTHONPATH is not defined, you should define it:

PYTHONPATH=:/home/el/wherever/where_to_find_modules


回答2:

Resolving issue with xlrd import in Python 2.7

open this link https://bootstrap.pypa.io/get-pip.py and save as get-pip.py and copy this file into C:\Python2.7\

C:\Python2.7\python.exe get-pip.py

After this pip is installed in your system now installing xlrd

C:\Python2.7\python.exe -m pip install xlrd

Open python and import xlrd

import xlrd

it will work.



回答3:

For me, running python in spyder on a mac, it didn't work even after I installed xlrd using pip, because it was installed to a different location than the one spyder was using. To fix this, I first found where xlrd was installed to:

$pip install xlrd
Requirement already satisfied: xlrd in /usr/local/lib/python2.7/site-packages

Then copied the xlrd folder from there into where Spyder could access it:

$cd /Applications/Spyder.app/Contents/Resources/lib/python2.7/
$cp -r /usr/local/lib/python2.7/site-packages/xlrd.

Then updated the module within spyder, but I'm not sure whether this was necessary. Restarting Spyder might have also worked after making those changes.



回答4:

If you're using conda,

conda install xlrd


回答5:

Please add "C:\Python27\Lib\site-packages\" to your PYTHONPATH in your system variables.

If there is no such SYSTEM VARIABLE, please create it:

  1. Right-click the My Computer icon on your desktop and select Properties.
  2. Click the Advanced tab, then click the Environment Variables button.
  3. Under System Variables, click New.
  4. Enter the variable name as PYTHONPATH.
  5. Enter the variable value as C:\Python27\Lib\site-packages\
  6. Click OK.
  7. Click Apply Changes.


回答6:

I had the same problem, seems like the is better if you export your xlsx to a csv file and then run the following on python

df = pd.read_csv('FileName.csv')

It should work like that. If you're using iPython or even better Jupyter then run df.head() to check if pandas reads your table properly.

Note, I am using Ubuntu



回答7:

python -m pip install xlrd

For my case I have both python2 and python3 installed, pip install xlrd default install xlrd into the Python3 library (/usr/local/lib/python3.6/site-packages/xlrd/. By specifying python2 for pip install solved my problem.