简体   繁体   中英

Unable to sudo python but I can python without sudo

I'm performing some maintenance on my linux box (rhel via ssh) but when I go to run a python script as such:

 asemani$ python3.6 get-pip.py 
  File "get-pip.py", line 20061, in <module>
    main()
  File "get-pip.py", line 194, in main
    bootstrap(tmpdir=tmpdir)
  File "get-pip.py", line 82, in bootstrap
    import pip
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 646, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 616, in _load_backward_compatible
  File "/tmp/tmp04ft8p5f/pip.zip/pip/__init__.py", line 26, in <module>
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 646, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 616, in _load_backward_compatible
  File "/tmp/tmp04ft8p5f/pip.zip/pip/utils/__init__.py", line 27, in <module>
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load
  File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 646, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 616, in _load_backward_compatible
  File "/tmp/tmp04ft8p5f/pip.zip/pip/_vendor/pkg_resources/__init__.py", line 3018, in <module>
  File "/tmp/tmp04ft8p5f/pip.zip/pip/_vendor/pkg_resources/__init__.py", line 3004, in _call_aside
  File "/tmp/tmp04ft8p5f/pip.zip/pip/_vendor/pkg_resources/__init__.py", line 3031, in _initialize_master_working_set
  File "/tmp/tmp04ft8p5f/pip.zip/pip/_vendor/pkg_resources/__init__.py", line 651, in _build_master
  File "/tmp/tmp04ft8p5f/pip.zip/pip/_vendor/pkg_resources/__init__.py", line 644, in __init__
  File "/tmp/tmp04ft8p5f/pip.zip/pip/_vendor/pkg_resources/__init__.py", line 700, in add_entry
  File "/tmp/tmp04ft8p5f/pip.zip/pip/_vendor/pkg_resources/__init__.py", line 2017, in find_on_path
PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/site-packages/setuptools-28.8.0.dist-info'

When I try to use sudo:

asemani$ sudo python3.6 get-pip.py'
[sudo] password for asemani: 
sudo: python3.6: command not found

Python isn't recognized? What is going on? How can I use sudo on python3.6. I'm pretty sure I installed it correctly.

Edit:

Approach 1:

[asemani@746c9prda5r asemani]$ sudo -E python3.6 get-pip.py
sudo: python3.6: command not found

Approach 2:

[asemani@746c9prda5r asemani]$ sudo /usr/local/bin/python3.6 get-pip.py 
[sudo] password for asemani: 
Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ConnectTimeoutError(<pip._vendor.requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7f0c4b78d908>, 'Connection to pypi.python.org timed out. (connect timeout=15)')': /simple/pip/
^COperation cancelled by user

It looks like sudo is losing your PATH from the environment, you need to pass the full path to python3.6:

which python3.6

Which will give you the full path, eg /opt/bin/python3.6

Then you need to do

sudo /opt/bin/python3.6 get-pip.py

Must be python path is not set in PATH env variable: Try to follow below steps:

search for paths where python is installed

ls -lrth /usr/local/bin/python3.5

-rwxr-xr-x. 2 root root 12M Mar 22 15:55 /usr/local/bin/python3.5

1)Add python path

vim ~/.bash_profile

PATH=$PATH:$HOME/bin:/usr/local/bin/python3.5

export PATH

2)Open new session (putty or any other fav.)

3) whereis python

4)Should work now or you can directly execute program

/usr/local/bin/python3.5 mydemo1.py

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM