Bluehost-преждевременное завершение заголовков в скрипте Python
У меня есть веб-сайт, и у меня есть 2 сценария Python CGI в папке CGI-BIN на моем веб-сайте. Теперь каждый раз, когда он пытается загрузить любой из этих двух сценариев Python CGI, сервер возвращает 500 ошибок, и есть преждевременное завершение ошибок печально известной ошибки.
Поэтому я попробовал что-то новое. Я сделал очень простой Python CGI-скрипт:
#!/usr/bin/python -u
print "Content-type: text/html\n\n"
print "Hello World!"
Я назвал это hello_world.py
поместите его в cgi-bin вместе с двумя другими скриптами на python, и я запустил следующую ссылку: http://steap.co/cgi-bin/hello_world.py, и он поразительно вернул "Hello World!".
Это показало мне, что что-то не так с моими скриптами на python, но я не знаю что. Это мой сценарий:
Steap.py
#!/usr/bin/python -u
#Steam64 ID - 76561198041707719
import urllib
import cgi, cgitb
import itertools
import urllib2
import time
from datetime import datetime
from bs4 import BeautifulSoup
from flask import Flask, jsonify, render_template, redirect
import requests
import json
import xml.etree.ElementTree as ET
from xml.dom.minidom import parseString
import sys
//code goes here
print "Content-type: text/html\n\n"
print "<div id=\"phisher-users\"></br></br>"
print getFriendList(steeam)
print "</div>"
print "<div id=\"phisher-ids\" style=\"display: none;\">"
print grabPhisherIDs()
print "</div>"
И теперь, когда сервер попытался загрузить этот скрипт, я получил дополнительную информацию:
Traceback (most recent call last):
File "Steap.py", line 9, in
from bs4 import BeautifulSoup
ImportError: No module named bs4
[Sat Dec 06 09:58:07 2014] [error] [client 174.61.70.33] Premature end of script headers: Steap.py
Почему это происходит? Я специально установил python 2.7 на свой веб-сайт и использовал pip для всех вышеперечисленных пользовательских модулей (таких как bs4, flask и т. Д.).
Любая помощь с благодарностью.
1 ответ
У меня есть оба 3.2.1
а также 4.3.2
версия BeautifulSoup.
$pip freeze
BeautifulSoup==3.2.1
beautifulsoup4==4.3.2
Вы можете импортировать BeautifulSoup следующим образом:
>>> from bs4 import BeautifulSoup
>>> from BeautifulSoup import BeautifulSoup
Вы можете проверить версию BeautifulSoup
как это на терминале Python.
>>> import bs4
>>> bs4.__version__
'4.3.2'
>>> import BeautifulSoup
>>> BeautifulSoup.__version__
'3.2.1'
Из кода переноса документов Python на BS4
Большая часть кода, написанного для Beautiful Soup 3, будет работать с Beautiful Soup 4 с одним простым изменением. Все, что вам нужно сделать, это изменить имя пакета from BeautifulSoup to bs4
, Итак, это:
from BeautifulSoup import BeautifulSoup
становится так:
from bs4 import BeautifulSoup
Если вы получите ImportError " No module named BeautifulSoup
”, Ваша проблема в том, что вы пытаетесь запустить код Beautiful Soup 3, но у вас установлен только Beautiful Soup 4.
Если вы получите ImportError “No module named bs4”
, ваша проблема в том, что вы пытаетесь запустить код Beautiful Soup 4, но у вас установлен только Beautiful Soup 3.