Error in installing SetupTools in Linux - python

So i trying install setuptools on a new server, so i got with
wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
and trying to sh setuptools-0.6c11-py2.7.egg in the directory where the file is located and I get
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named setuptools.command.easy_install
I couldn't find any way of debugging this anywhere.
When I try
import sys
from setuptools.command.easy_install import bootstrap
sys.exit(bootstrap())
I get
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named setuptools.command.easy_install
When I enter sys.path in python interpreter it gives me the following:
['', '/opt/python2.7/lib/python27.zip', '/opt/python2.7/lib/python2.7', '/opt/python2.7/lib/python2.7/plat-linux3', '/opt/python2.7/lib/python2.7/lib-tk', '/opt/python2.7/lib/python2.7/lib-old', '/opt/python2.7/lib/python2.7/lib-dynload', '/opt/python2.7/lib/python2.7/site-packages']

You could try a few different things:
move the file to a different directory, cd to the same directory, and again try running sh setuptools-0.6c11-py2.7.egg.
Open the python2.7 interactive prompt (just run python2.7) in the same directory as where the file resides. Then run:
import sys
from setuptools.command.easy_install import bootstrap
sys.exit(bootstrap())
to attempt the installation manually
If that still doesn't work, run python2.7 and run the following python code, and add the information shown to your question:
import sys
import setuptools
print 'Path:', sys.path
print 'setuptools package:', setuptools.__file__
Last but not least, test that the downloaded egg was not somehow corrupted or truncated. Test for the md5 hash and size:
$ md5 setuptools-0.6c11-py2.7.egg
MD5 (setuptools-0.6c11-py2.7.egg) = fe1f997bc722265116870bc7919059ea
$ ls -l setuptools-0.6c11-py2.7.egg
-rw-r--r-- 1 own grp 332005 Jul 8 2010 setuptools-0.6c11-py2.7.egg
If they don't match, redownload the file and try again.

Related

Trying to import "matplotlib" (which is already installed), it appears the following error:

I'm receiving the following error when trying to import matplotlib in Pycharm:
Traceback (most recent call last):
File "C:/Users/E490/PycharmProjects/pythonProject/main.py", line 1, in <module>
import matplotlib
File "C:\Users\E490\PycharmProjects\pythonProject\venv\lib\site-packages\matplotlib\__init__.py", line 174, in <module>
_check_versions()
File "C:\Users\E490\PycharmProjects\pythonProject\venv\lib\site-packages\matplotlib\__init__.py", line 159, in _check_versions
from . import ft2font
ImportError: DLL load failed while importing ft2font: The specified module could not be found.
Your environment is probably messed up, try creating a new one and test it!
Execute the following commands in your terminal:
python3 -m venv test_env
source test_env/bin/activate
pip3 install matplotlib
python3 -c "import matplotlib"
If you don't get any errors its fixed

ModuleNotFoundError: No module named 'future'

I have a Python script that I am trying to run in Linux via a bash script called ./launch.sh. When I launch the code I get the following error returned.
[user#localhost mktdata.out]$ ./launch.sh
[user#localhost mktdata.out]$ Traceback (most recent call last):
File "strats/merlin.py", line 10, in <module>
File "strats/merlin/mktdata.py", line 11, in <module>
File "strats/dao/utils/itertools.py", line 1, in <module>
ModuleNotFoundError: No module named 'future'
Line 1 in the Python script itertools.py line 1 that the error is referring to is:
from future.moves.itertools import zip_longest
Is there a package that I need to install in order for this code to work?
You need to import future like this:
from __future__ import *
In the event that fails, use pip to install it like this (Use sudo for MAC):
pip install future
Here is more on installing future.

Jupyter cannot start, "ImportError: This package should not be accessible"

I am unable to start a Jupyter notebook server on a linux machine. When I type jupyter notebook, I get the following errors:
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted.
During handling of the above exception, another exception occurred:
ModuleNotFoundError: No module named 'urlparse'
Here is some system info, let me know if anything else might be helpful:
$ jupyter --version
4.4.0
$ which jupyter
/usr/bin/jupyter
$ which python
/usr/bin/python
$ which python3
/usr/bin/python3
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.1 LTS"
$ cat /proc/version
Linux version 4.15.0-38-generic (buildd#lcy01-amd64-023) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #41-Ubuntu SMP Wed Oct 10 10:59:38 UTC 2018
$ pip3 --version
pip 9.0.1 from /usr/local/lib/python3.6/dist-packages (python 3.6)
When I try python2 -m pip install urlparse --user, I get an error: Collecting urlparse Could not find a version that satisfies the requirement
The reported error resembles the one shown here, but the stated solution of creating and using a python3 virtual environment doesn't seem to immediately fix the jupyter notebook command, although it does replace python and python3 executable with links to the virtual environment:
(env) $ which jupyter
/usr/bin/jupyter
(env) $ which python
/home/.../env/bin/python
(env) $ which python3
/home/.../env/bin/python3
In case there is some question about the python path, here is the path for python 2:
$ ipython
...
In [2]: sys.path
Out[2]:
['/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk',
'/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload',
'/home/$USER/.local/lib/python2.7/site-packages',
'/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/home/$USER/.local/lib/python2.7/site-packages/IPython/extensions',
'/home/$USER/.ipython']
And for python3
$ ipython3
...
In [2]: sys.path
Out[2]:
['/usr/lib/python36.zip',
'/usr/lib/python3.6',
'/usr/lib/python3.6/lib-dynload',
'/home/$USER/.local/lib/python3.6/site-packages',
'/usr/local/lib/python3.6/dist-packages',
'/usr/lib/python3/dist-packages',
'/home/$USER/.local/lib/python3.6/site-packages/IPython/extensions',
'/home/$USER/.ipython']
The full stack trace of the first error when starting Jupyter is:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/notebook/nbextensions.py", line 18, in <module>
from urllib.request import urlretrieve
File "/usr/lib/python3.6/urllib/request.py", line 88, in <module>
import http.client
File "/home/$USER/.local/lib/python3.6/site-packages/http/__init__.py", line 7, in <module>
raise ImportError('This package should not be accessible on Python 3. '
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted.
The contents of /usr/bin/jupyter are as follows:
$ cat `which jupyter`
#!/usr/bin/python3
# EASY-INSTALL-ENTRY-SCRIPT: 'jupyter-core==4.4.0','console_scripts','jupyter'
__requires__ = 'jupyter-core==4.4.0'
import re
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(
load_entry_point('jupyter-core==4.4.0', 'console_scripts', 'jupyter')()
)
One suggested answer is that there is a spurious http library, "it happens to be overridden by some 3rd-party module "http" at /home/$USER/.local/lib/python3.6/site-packages/http". When I remove this library manually, I now get an error importing the site module, as follows:
$ cd /home/$USER/.local/lib/python3.6/site-packages
$ mv ./http ~/Desktop/python_disabled/python3/
$ jupyter notebook
Error processing line 1 of /home/$USER/.local/lib/python3.6/site-packages/lazr.restfulclient-0.14.0-py3.6-nspkg.pth:
Failed to import the site module
Traceback (most recent call last):
File "/usr/lib/python3.6/site.py", line 174, in addpackage
exec(line)
File "<string>", line 1, in <module>
File "/usr/lib/python3.6/types.py", line 171, in <module>
import functools as _functools
File "/usr/lib/python3.6/functools.py", line 21, in <module>
from collections import namedtuple
File "/usr/lib/python3.6/collections/__init__.py", line 32, in <module>
from reprlib import recursive_repr as _recursive_repr
File "/home/$USER/.local/lib/python3.6/site-packages/reprlib/__init__.py", line 7, in <module>
raise ImportError('This package should not be accessible on Python 3. '
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted.
This part is wrong:
File "/usr/lib/python3.6/urllib/request.py", line 88, in <module>
import http.client
File "/home/$USER/.local/lib/python3.6/site-packages/http/__init__.py", line 7, in <module>
raise ImportError('This package should not be accessible on Python 3. '
A standard module tries to import http.client, also a standard module. And in your installation, it happens to be overridden by some 3rd-party module "http" at /home/$USER/.local/lib/python3.6/site-packages/http.
Remove that 3rd-party module.
Judging by the same problem with reprlib package after uninstalling http in your updated question, you seem to have the micropython-lib set of packages installed in /home/$USER/.local/lib/python3.6. Since there are lots of them, it's easier to just delete the entire directory. I've no idea how they ended up there since they are not only incompatible with a regular CPython installation but with Python 3 in general.
Finally, note that depending on your needs, using virtualenv may be a more manageable solution than pip --user.

Python pip2 fails - ImportError: No module named moves

I can't run pip2, which is installed from its Arch Linux package:
$ pip2
Traceback (most recent call last):
File "/usr/bin/pip2", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 47, in <module>
from pkg_resources.extern.six.moves import urllib, map, filter
ImportError: No module named moves
I reinstalled python2-pip2 and python2-setuptools with no results. This has been a problem for months.
While I don't understand the issue, it is possible to reset it by removing locally (--user) installed packages:
Move all packages installed as the user:
mv ~/.local/lib/python2.7/site-packages ~/site-packages-bak
or try to pinpoint the problematic files. In my case, for some reason I had a python file and its pyc file lying around the site-packages directory and just moving them solved my issue:
mv ~/.local/lib/python2.7/site-packages/six.py ~/six.py-bak
mv ~/.local/lib/python2.7/site-packages/six.pyc ~/six.pyc-bak

tox Invocation failed for Python 3

tox runs my Python 2.7 tests, but fails for Python 3.4. It gives an "Invocation failed" message. Excerpts:
py34 create: /home/josh/code/ezoutlet/.tox/py34
ERROR: invocation failed (exit code 1), logfile: /home/josh/code/ezoutlet/.tox/py34/log/py34-0.log
ERROR: actionid: py34
msg: getenv
cmdargs: ['/usr/bin/python', '-m', 'virtualenv', '--python', '/usr/bin/python3.4', 'py34']
And later
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 8, in <module>
import base64
File "/usr/lib/python3.4/base64.py", line 9, in <module>
import re
File "/usr/lib/python3.4/re.py", line 336, in <module>
import copyreg
File "/usr/local/lib/python2.7/dist-packages/copyreg/__init__.py", line 7, in <module>
raise ImportError('This package should not be accessible on Python 3. '
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted.
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 53, in apport_excepthook
if not enabled():
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 24, in enabled
import re
File "/usr/lib/python3.4/re.py", line 336, in <module>
import copyreg
File "/usr/local/lib/python2.7/dist-packages/copyreg/__init__.py", line 7, in <module>
raise ImportError('This package should not be accessible on Python 3. '
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted.
Original exception was:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 8, in <module>
import base64
File "/usr/lib/python3.4/base64.py", line 9, in <module>
import re
File "/usr/lib/python3.4/re.py", line 336, in <module>
import copyreg
File "/usr/local/lib/python2.7/dist-packages/copyreg/__init__.py", line 7, in <module>
raise ImportError('This package should not be accessible on Python 3. '
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted.
Running virtualenv with interpreter /usr/bin/python3.4
ERROR: InvocationError: /usr/bin/python -m virtualenv --python /usr/bin/python3.4 py34 (see /home/josh/code/ezoutlet/.tox/py34/log/py34-0.log)
You need to look at the details of the error message. Notice the command that failed (from the first excerpt):
cmdargs: ['/usr/bin/python', '-m', 'virtualenv', '--python', '/usr/bin/python3.4', 'py34']
You can run this manually with:
/usr/bin/python -m virtualenv --python /usr/bin/python3.4 py34
Assuming you see the same error, your issue is with virtualenv rather than tox.
I reviewed the virtualenv help page and it seems like this should work. Faced with a possible bug, a good first step is to upgrade Python, virtualenv, or other libraries.
In my case, upgrading virtualenv was the solution:
pip install --upgrade virtualenv
Interestingly, this solution worked on both Windows and Linux. Most likely, there was a bug fix between when I got virtualenv and the latest release.

Categories