GerbenJavado / LinkFinder

A python script that finds endpoints in JavaScript files
https://gerbenjavado.com/discovering-hidden-content-using-linkfinder
MIT License
3.64k stars 588 forks source link

Import Error: No module named html #75

Open w1ld3r opened 4 years ago

w1ld3r commented 4 years ago

python version: 3.8.3rc1 LinkFinder version: master

Error:

Traceback (most recent call last):
  File "./linkfinder.py", line 11, in <module>
    import re, sys, glob, html, argparse, jsbeautifier, webbrowser, subprocess, base64, ssl, xml.etree.ElementTree
ImportError: No module named html
EdOverflow commented 4 years ago

What version of Python are you running?

$ sudo apt-get install html
w1ld3r commented 4 years ago

As I wrote upper: Python 3.8.3

remonsec commented 4 years ago

Help !

image

w1ld3r commented 4 years ago

Help !

image

What version of python are you running ?

remonsec commented 4 years ago

Help ! image

What version of python are you running ?

chech this out

image

w1ld3r commented 4 years ago

I recommend you to don't use anymore python2 because it's no more supported and LinkFinder support python3. So use pip3 instead of pip. But I thinks you will have the same error as me.

w1ld3r commented 4 years ago

To reproduce my issue:

git clone https://github.com/GerbenJavado/LinkFinder.git
cd LinkFinder
pip3 install -r requirements.txt
sudo python3 setup.py install
linkfinder -h

Error:

Traceback (most recent call last):
  File "/home/xinshen/.local/bin//linkfinder", line 11, in <module>
    import re, sys, glob, html, argparse, jsbeautifier, webbrowser, subprocess, base64, ssl, xml.etree.ElementTree
ImportError: No module named html

Otherwise it's running well with:

python3 linkfinder.py -h
remonsec commented 4 years ago

To reproduce my issue:

git clone https://github.com/GerbenJavado/LinkFinder.git
cd LinkFinder
pip3 install -r requirements.txt
sudo python3 setup.py install
linkfinder -h

Error:

Traceback (most recent call last):
  File "/home/xinshen/.local/bin//linkfinder", line 11, in <module>
    import re, sys, glob, html, argparse, jsbeautifier, webbrowser, subprocess, base64, ssl, xml.etree.ElementTree
ImportError: No module named html

Otherwise it's running well with:

python3 linkfinder.py -h

image

linkfinder -h not working, i have done with sudo python3 setup.py install command python3 linkfinder.py -h working good Thanks bro for your support

EdOverflow commented 4 years ago

@x1n5h3n, would you be willing to retest your steps above? Does the problem still occur with the latest master branch?

w1ld3r commented 4 years ago

I've got a ModuleNotFoundError when trying to install requirements modules.

Steps to reproduce:

git clone https://github.com/GerbenJavado/LinkFinder.git
cd LinkFinder
pip3 install -r requirements.txt
Requirement already satisfied: jsbeautifier in /home/xinshen/.local/lib/python3.8/site-packages (from -r requirements.txt (line 1)) (1.10.3)
Collecting html
  Using cached html-1.16.tar.gz (7.6 kB)
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ansfj40_/html/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ansfj40_/html/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-fwdyf2xd
         cwd: /tmp/pip-install-ansfj40_/html/
    Complete output (15 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 20, in <module>
        from setuptools.depends import Require
      File "/usr/lib/python3/dist-packages/setuptools/depends.py", line 6, in <module>
        from .py33compat import Bytecode
      File "/usr/lib/python3/dist-packages/setuptools/py33compat.py", line 11, in <module>
        from setuptools.extern.six.moves import html_parser
      File "/usr/lib/python3/dist-packages/setuptools/_vendor/six.py", line 92, in __get__
        result = self._resolve()
      File "/usr/lib/python3/dist-packages/setuptools/_vendor/six.py", line 115, in _resolve
        return _import_module(self.mod)
      File "/usr/lib/python3/dist-packages/setuptools/_vendor/six.py", line 82, in _import_module
        __import__(name)
    ModuleNotFoundError: No module named 'html.parser'; 'html' is not a package
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

Otherwise it's running well, for me, without installing requirements packages.

nikitastupin commented 4 years ago

Hi @EdOverflow,

https://github.com/GerbenJavado/LinkFinder/commit/c9cfaa5d1537193292081fc5a86c15bcfa5cd8f9 has broken pip3 install -r requirements.txt. Now it returns:

...
Collecting html
  Downloading html-1.16.tar.gz (7.6 kB)
    ERROR: Command errored out with exit status 1:
     command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-flkrb8ji/html/setup.py'"'"'; __file__='"'"'/tmp/pip-install-flkrb8ji/html/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-flkrb8ji/html/pip-egg-info
         cwd: /tmp/pip-install-flkrb8ji/html/
    Complete output (17 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 19, in <module>
        from setuptools.dist import Distribution, Feature
      File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 35, in <module>
        from setuptools.depends import Require
      File "/usr/lib/python3/dist-packages/setuptools/depends.py", line 6, in <module>
        from .py33compat import Bytecode
      File "/usr/lib/python3/dist-packages/setuptools/py33compat.py", line 11, in <module>
        from setuptools.extern.six.moves import html_parser
      File "/usr/lib/python3/dist-packages/setuptools/_vendor/six.py", line 92, in __get__
        result = self._resolve()
      File "/usr/lib/python3/dist-packages/setuptools/_vendor/six.py", line 115, in _resolve
        return _import_module(self.mod)
      File "/usr/lib/python3/dist-packages/setuptools/_vendor/six.py", line 82, in _import_module
        __import__(name)
    ModuleNotFoundError: No module named 'html.parser'; 'html' is not a package
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

As far as I understand html module is built-in in python3 so we don't need to install it manually.

Software versions

$ pip3 --version
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
$ python3 --version
Python 3.8.2
$ uname -a
Linux bug 5.4.0-31-generic #35-Ubuntu SMP Thu May 7 20:20:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
EdOverflow commented 4 years ago

Yep, you are absolutely right, @nikitastupin. I noticed this when @x1n5h3n tried reproducing the problem. As you pointed out, html is a built-in module in Python 3. I will remove it from the requirements.txt file.

mikely22 commented 4 years ago

Any help fixing this issue Mr EdOverflow have been on this for the past 3days no luck. Thanks

Redge4r commented 4 years ago

Hello,

I see the same error

$ py linkfinder.py -h Traceback (most recent call last): File "linkfinder.py", line 11, in import re, sys, glob, argparse, jsbeautifier, webbrowser, subprocess, base64, ssl, xml.etree.ElementTree, html ImportError: No module named html

$ py --version Python 3.8.5

Please advice what can be done to fix it.

abhi06991 commented 3 years ago

For me, this worked, In the linkfinder.py file, you have to change the shebang, the first line from python to python3 #!/usr/bin/env python to #!/usr/bin/env python3

w1ld3r commented 3 years ago

@abhi06991 when executed using python3 command, the shebang is not used. When you run it like this ./linkfinder.py, it's used.