Python ImportError: cannot import name itemgetter - python

Python 2.7.5 (default, Sep 12 2013, 12:43:04)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/urllib.py", line 33, in <module>
from urlparse import urljoin as basejoin
File "/usr/local/lib/python2.7/urlparse.py", line 118, in <module>
from collections import namedtuple
File "/usr/local/lib/python2.7/collections.py", line 9, in <module>
from operator import itemgetter as _itemgetter, eq as _eq
ImportError: cannot import name itemgetter
This issue occurs when I run import urllib. Python version is 2.7. Is this a Python's version problem? Could someone tell me how to fix it?

You have a file called operator.py in the current directory, so import operator is picking up your module and not the Python standard library module operator.
You should rename your file to not conflict with Python's standard library.

Related

python seaborn lib throwing error on import

I am loading missingno lib on python as provided below.
while loading , it throws error at seaborn/rcmod.py.
following are the versions,-
missingno-0.3.8
numpy-1.9.0
matplotlib-1.5.0
seaborn==0.8.1
Python 2.6.6 (r266:84292, Jul 23 2015, 05:13:40)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import missingno as mn
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/site-packages/missingno/__init__.py", line 1, in
<module>
from .missingno import matrix
File "/usr/lib/python2.6/site-packages/missingno/missingno.py", line 6, in
<module>
import seaborn as sns
File "/usr/lib/python2.6/site-packages/seaborn/__init__.py", line 6, in
<module>
from .rcmod import *
File "/usr/lib/python2.6/site-packages/seaborn/rcmod.py", line 161
style_dict = {k: mpl.rcParams[k] for k in _style_keys}
^
SyntaxError: invalid syntax
seaborn doesn't support Python 2.6: https://github.com/mwaskom/seaborn/blob/88c49ef6c14ca69def8195f03d467915b3b0597c/setup.py#L82
You need to update your Python to at least Python 2.7 to use seaborn.

ImportError: cannot import name 'timezone' while importing NLTK

While importing NLTK in Python2 or Python3, the error shows up that 'timezone' cannot be imported while importing NLTK. It worked fine few days earlier.
Someone please help. The output is below.
For Python3
Python 3.4.3 (default, Nov 17 2016, 01:08:31)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import nltk
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
........
........
from datetime import timezone
ImportError: cannot import name 'timezone'
For Python2
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import nltk
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/nltk/__init__.py", line 89, in <module>
from nltk.internals import config_java
File "/usr/local/lib/python2.7/dist-packages/nltk/internals.py", line 31, in <module>
from nltk import compat
File "/usr/local/lib/python2.7/dist-packages/nltk/compat.py", line 45, in <module>
from datetime import tzinfo, timedelta
ImportError: cannot import name tzinfo
Moved solution from question to answer:
UPDATE (Problem Solved)
The issue has been solved now - turns out the problem was that i had a folder named datetime in my current working directory which was actually being imported by the file since the first element of the searched path is The directory containing the input script (or the current directory when no file is specified).
In short, Just renaming that folder solved all the problems. Thanks anyway to all.
I think you need to install dateutil package of python.
dateutil provides datetime parsing and timezone conversion.
Then try importing nltk

Can't import appengine python module

On my local machine I am unable to import appengine.ext module.
I have set the path using the following code
>>> import sys
>>> sys.path.insert(1, '/usr/local/google_appengine')
>>> sys.path.insert(1, '/usr/local/google_appengine/lib/yaml/lib')
Here is the error
Python 2.7.10 (default, Jul 14 2015, 19:46:27)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path.insert(1, '/usr/local/google_appengine')
>>> sys.path.insert(1, '/usr/local/google_appengine/lib/yaml/lib')
>>> from google import appengine
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: cannot import name appengine
>>> from google.appengine.ext import ndb
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named appengine.ext
>>>
you should try to add the following code to the begining:
import dev_appserver
dev_appserver.fix_sys_path()
should work :).

Why I can not import the package in Python?

I use the code from here:
https://github.com/Jefferson-Henrique/GetOldTweets-python
And every time I try to import the file folder, import got, it will raise:
Traceback (most recent call last):
File "C:\Users\USER\Desktop\python\get_old_tweet\Main.py", line 1, in <module>
import got
File "C:\Users\USER\Desktop\python\get_old_tweet\got\__init__.py", line 1, in <module>
import models
ImportError: No module named 'models'
I have check the file and been pretty sure that they do have the file folder called models
And the file folder also contains __init__.py file.
So it should work well..
I have no idea how it doesn't work. Please help me!
Which version of Python do you use?
The library https://github.com/Jefferson-Henrique/GetOldTweets-python is written with Python 2.
Python 2 and Python 3 have a bit different behavior with import: https://www.python.org/dev/peps/pep-0404/#imports
Let me share example of import regarding your case:
$ python3
Python 3.5.0 |Anaconda 2.4.0 (x86_64)| (default, Oct 20 2015, 14:39:26)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import got
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/viach/Downloads/GetOldTweets-python-master/got/__init__.py", line 1, in <module>
import models
ImportError: No module named 'models'
>>> ^C
KeyboardInterrupt
$ python2
Python 2.7.10 (default, Aug 22 2015, 20:33:39)
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import got
So, quick solution for you: use Python 2 in your app which depends on GetOldTweets-python.
Python only searches its default library paths by default (including the running script path). So you need to put them in Python default library paths or append your module path to those paths.
To append the path array:
>>> import sys
>>> sys.path.append("path/to/the_module")
>>> import the_module
If above solution doesn't worked, try:
>>> from models import got
It depends on where you are importing from. In the repository you proved a link to models is a subfolder of got. Try this:
from got import models
You can use a Python3-compatible fork of GetOldTweets-python:
https://github.com/Mottl/GetOldTweets-python3

Virtual server ImportError: No module named fuzzywuzzy

Running an ec2 instance on aws; when attempting to run a script that imports several packages, all packages import correctly except one: 'fuzzywuzzy' (used for fuzzy string matching). I tried installing fuzzywuzzy from source code within the virtual server but aws reacted by auto-uninstalling it.
[ec2-user#ip-172-31-39-215 BearTrap]$ python
Python 2.7.9 (default, Apr 1 2015, 18:18:03)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import csv
>>> import string
>>> import ast
>>> import itertools
>>> from collections import OrderedDict
>>> import fuzzywuzzy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named fuzzywuzzy

Categories