Scapy installation fails due to invalid token

2019-03-22 14:31发布

问题:

I have recently taken up learning networks, and I want to install scapy. I have downloaded the latest version (2.2.0), and have two versions of python on my computer- 2.6.1 and 3.3.2. My OS is windows 7 64 bit.

After extracting scapy and navigating to the correct folder in the terminal, I was instructed to run "python setup.py install". I get the following error-

File "setup.py", line 35
os.chmod(fname,0755)
................................^
......................invalid token

(dots for alignment)

How do I solve this problem?

回答1:

Update: scapy-python3 is deprecated (2018) and will no longer be updated. scapy>=2.4.0 has merged python 3 compatibility.

The most up-to-date installation method is now

pip3 install scapy>=2.4.0

You may check the installation page in the documentation for other installation methods

Original answer:

Perhaps you are trying to install the package scapy for Python 2, but you need the one for Python 3.

pip install scapy 

gave this error:

os.chmod(fname,0755)
                  ^
SyntaxError: invalid token

while

pip3 install scapy-python3

did a proper install.

This error means the octal number is not recognized by Python 3, see PEP 3127:

octal literals must now be specified with a leading "0o" or "0O" instead of "0";



回答2:

The following works for me on Python 3.5

pip3.5 install scapy-python3


回答3:

Change os.chmod(fname,0755) to os.chmod(fname,0o755) and re-run



回答4:

If pip installation is causing problem. You can download using wget and try to install.

$ cd /tmp
$ wget --trust-server-names scapy.net
$ unzip scapy-x.x.x.zip
$ cd scapy
$ sudo python setup.py install

Check here for all ways of installing scapy.



回答5:

Scapy mainly used on uinx-liked OS, and can't install by pip. But they offered msi installer for windows:

http://www.secdev.org/projects/scapy/doc/installation.html

The error also occurs on Linux, but virtualenv saves me.Virtualenv is a really good solution of using different version python or librarys on one OS.

virtualenv -p $python_bin_path $virtualenv_directory_name

Creating a virtual env with python2 and python3:

virtualenv -p `which python` project_with_python2
virtualenv -p `which python3` project_with_python3

Then active the env, and install the requirements.

cd project_with_python2
source bin/activate
pip install scapy
pip install -r requirements.txt

And using deactivate to exit env.