혹시 WINDOW 사용하시는 분들 중, CGI에서 html_sanitizer 모듈이 import가 안 되는 ModuleNotFoundError가 발생했을 때 해결방법을 정리했으니 참고해주세요.
(= Apache error log에서 확인했을 때, 다음과 같은 에러 발생)
File "/home/abc/lang/python/index.py", line 4, in <module>
import cgi, os, view, html_sanitizer
File "/home/abc/lang/python/view.py", line 1, in <module>
import os, html_sanitizer
ModuleNotFoundError: No module named 'html_sanitizer'
처음에는 아래와 같이 설치했다가 안되어서
>$ pip3 install html_sanitizer
설치를 삭제하고
>$ pip3 uninstall html_sanitizer
관리자로 재 설치하니, 정상적으로 작동되었습니다.
>$ $ sudo pip3 install html_sanitizer
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io......env
모듈에러 뜨신 분들은 혹시 관리자권한으로 해당 모듈을 설치했는지 확인해보세요. 모듈 설치가 처음 #으로 지정한 폴더가 아니라 다른 폴더에 설치 된 걸 수도 있습니다.
특히 모듈 설치 후 defaulting to user installation because normal site-packages is not writeable 이 문장이 나왔다면 100%입니다.
pip install html-sanitizer 입력시 이미 설치된 requirement의 목록이 나옵니다.
저는 lxml, beautifulsoup4, soupsieve 이 세개였습니다.
pip uninstall 명령어를 통해 위의 세개와 html-sanitizer를 삭제하신 뒤
html-sanitizer를 다시 설치하시면 정상적으로 작동합니다.
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com......599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
ERROR: Exception:
Traceback (most recent call last):
File "C:\Users\AppData\Roaming\Python\Python38\site-packages\pip\_internal\cli\base_command.py", line 186, in _main
status = self.run(options, args)
File "C:\Users\AppData\Roaming\Python\Python38\site-packages\pip\_internal\commands\install.py", line 253, in run
options.use_user_site = decide_user_install(
File "C:\Users\AppData\Roaming\Python\Python38\site-packages\pip\_internal\commands\install.py", line 604, in decide_user_install
if site_packages_writable(root=root_path, isolated=isolated_mode):
File "C:\Users\AppData\Roaming\Python\Python38\site-packages\pip\_internal\commands\install.py", line 548, in site_packages_writable
return all(
File "C:\Users\AppData\Roaming\Python\Python38\site-packages\pip\_internal\commands\install.py", line 549, in <genexpr>
test_writable_dir(d) for d in set(get_lib_location_guesses(**kwargs))
File "C:\Users\AppData\Roaming\Python\Python38\site-packages\pip\_internal\utils\filesystem.py", line 140, in test_writable_dir
return _test_writable_dir_win(path)
File "C:\Users\AppData\Roaming\Python\Python38\site-packages\pip\_internal\utils\filesystem.py", line 153, in _test_writable_dir_win
fd = os.open(file, os.O_RDWR | os.O_CREAT | os.O_EXCL)
pip3 help install 후에
pip3 install html-sanitizer 라고 치면
ERROR: Could not install packages due to an EnvironmentError: [WinError 5] 액세스가 거부되었습니다: 'c:\\program files (x86)\\python38-32\\Lib\\site-packages\\soupsieve'
Consider using the `--user` option or check the permissions라고 뜨는데 어떻게 해결할수 있을까요?
수업 잘 듣고 있습니다!!
No module named 'html_sanitizer'\r: C:/Bitnami/wampstack-7.3.7-0/apache2/htdocs/index.py, referer: http://localhost.......py
에러코드에 이런게 뜨는데,, html_sanitizer 설치가 잘 안된건가요?
cmd에서는 이미 설치되었다고 뜨는데 왜 안 될까요??