首页 > 解决方案 > sudo pipenv 运行问题

问题描述

我正在尝试将 scapy 和 netfilterqueue 与 python 3.6.1 一起使用。我创建了一个安装了这些的环境.. 因为 netfilterqueue 在 python 3.9 上不起作用。

当我尝试运行我的脚本时: pipenv run python3 test.py

它在正确的环境中运行,但我得到:

PermissionError: [Errno 1] Operation not permitted

当我尝试使用 sudo 运行时:sudo pipenv run python3 test.py

我得到:

Warning: Python 3.6.1 was not found on your system…
You can specify specific versions of Python with:
  $ pipenv --python path/to/python

我已验证我的库已正确安装在环境中,但我不确定如何传递运行脚本的权限。谢谢!

──(kali㉿bad)-[~/Desktop/env]
└─$ pipenv shell                  
Launching subshell in virtual environment...
 . /home/kali/.local/share/virtualenvs/env-_HkHVbK0/bin/activate
WARNING: `pyenv init -` no longer sets PATH.
Run `pyenv init` to see the necessary changes to make to your configuration.
┌──(kali㉿bad)-[~/Desktop/env]
└─$  . /home/kali/.local/share/virtualenvs/env-_HkHVbK0/bin/activate
                                                                                           
┌──(env-_HkHVbK0)(kali㉿bad)-[~/Desktop/env]
└─$ python3
Python 3.6.1 (default, May 12 2021, 17:05:21) 
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import scapy
>>> import netfilterqueue
>>> import sys
>>> sys.path
['', '/home/kali/.pyenv/versions/3.6.1/lib/python36.zip', '/home/kali/.pyenv/versions/3.6.1/lib/python3.6', '/home/kali/.pyenv/versions/3.6.1/lib/python3.6/lib-dynload', '/home/kali/.local/share/virtualenvs/env-_HkHVbK0/lib/python3.6/site-packages']
>>> 

标签: pythonlinuxpipenv

解决方案


我确实有类似的问题。我设法通过使用 sudo 运行虚拟环境的 Python 可执行文件来解决。例如,如果您的 virtualenv 是 ./AwesomeProject,那么您可以运行 sudo ./AwesomeProject/bin/python 以使用具有 root 权限的 virtualenv 的脚本。

要查找虚拟环境的 Python 可执行文件(例如:./AwesomeProject/bin/python)的位置,请在虚拟环境中运行

whereis python

更多信息: https ://askubuntu.com/questions/234758/how-to-use-a-python-virtualenv-with-sudo


推荐阅读