繁体   English   中英

在我的文件中导入 scapy.all 时出现问题

[英]Having Issue Importing scapy.all in my file

在我的 Ubuntu 虚拟机中导入 scapy 时遇到问题。
我可以在终端中轻松使用from scapy.all import *
我正在使用 Visual Studio Code,当我将鼠标悬停在 scapy 上时,右键单击并转到定义,它会将我带到 scapy 文件。
以下是我见过并尝试过的解决方案:

  1. 我的文件名(或文件夹中的任何文件名)不是“scapy.py”。

  2. 我直接从网站上安装了 scapy,使用了“sudo apt-get install python3-scapy”,还尝试了“pip install scapy”。 这些都没有改变任何东西。

  3. 如果我运行另一个 python 文件(没有“sudo”和“from scapy.all import *”),它运行良好。 但是当我使用“sudo”时存在一个导入问题。 在此处输入图片说明

  4. 我尝试执行以下操作来解决我的问题:

    • 在终端输入:
      sudo mkdir /usr/lib/python2.7/dist-packages/scapy
      cd /usr/lib/python3/dist-packages/
      cp -avr scapy/* /usr/lib/python2.7/dist-packages/scapy \\

    这也没有解决。

  5. 我还想也许我搞砸了一些模块文件。 所以我尝试在一个新的 VirtualBox 镜像上做所有的事情。 但这也失败了。

  6. 我可以在终端中输入“scapy”,它打开得很好。

我的 python 版本是 3.8.10
Scapy 版本:2.4.5

我已经被困在这个问题上 4 天了。 请帮忙。

建议使用virtualenv ,如果您有多个 python 版本,它将解决冲突。

  • 创建一个虚拟环境,通过以下命令

    virtualenv env -p python3

  • 然后激活它

    source env/bin/activate

  • 然后使用pip安装scapy:

    pip install scapy

并尝试从那里导入库。

安装在非 root 用户上的软件包未在系统范围内安装,因此当您以 root 用户身份运行脚本时会出现导入问题
一些可以使用的解决方案:

  1. 也将scapy安装到root用户
  • 切换到root
sudo su
  • 安装 scapy
pip install scapy
  • 然后您可以在本地运行您的脚本,不会出现任何问题
sudo python3 script.py
  1. 或者,创建一个虚拟环境推荐)并在那里安装 scapy
  • 创建虚拟环境
demo@stack:~/demo$ virtualenv venv
  • 激活虚拟环境
demo@stack:~/demo$ source venv/bin/activate
  • 通过pip将scapy安装到新的虚拟环境中
(venv) demo@stack:~/demo$ pip install scapy
  • 您现在可以使用超级用户权限运行脚本而不会出现问题
(venv) demo@stack:~/demo$ sudo python3 script.py

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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