سؤال

I'm trying to run a program that imports simplejson. When I run it in Python 2.7 it's ok, but when I run it in Python 3.3 it says:

File "C:\Python33\lib\simplejson__init__.py", line 111, in <module>
from decoder import JSONDecoder, JSONDecodeError
ImportError: No module named 'decoder'

هل كانت مفيدة؟

المحلول

There is no need to use the external simplejson library. The json module included in the Python 3 standard library is the exact same module, but maintained as part of the Python distribution. Quoting from the simplejson PyPI page:

simplejson is the externally maintained development version of the json library included with Python 2.6 and Python 3.0, but maintains backwards compatibility with Python 2.5.

Use the following code to switch to simplejson if json isn't present (only for Python 2.5, the library is included in 2.6 and up):

try:
    import json
except ImportError:
    # python 2.5
    import simplejson as json

نصائح أخرى

You need to install it properly. That means using easy_install simplejson or pip install simplejson. Since you are on windows neither of these command-line tools are installed by default.

However, there is also a half-automated way install a package properly: Download and unpack it to some temporary folder and then open a command line window inside the package's folder and execute python setup.py install in there.

Extracting it manually to your Python folder is pretty much always a bad choice that is likely to mess up your python installation (in case any conflicts with existing files occur).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top