无法在pythonanywhere以及google app engine(GAE)中安装omdb api

2024-04-26 00:49:41 发布

您现在位置:Python中文网/ 问答频道 /正文

好吧,我已经搜索了很多关于这类问题的帖子,但坦率地说,没有一个帖子在我的问题上帮助我,或者我不能理解答案,所以我再次问这个问题,所以需要一个简单的英文回答(没有编码语言的答案请。)

我的问题:

我试图在pythonanywhere中使用omdbapi来获取电影的细节,但是当我试图运行这个文件时,它显示了一个错误:“没有名为ombd的模块”(当我上传并打开文件时会出现这个错误,但是当我在bash中复制粘贴代码时,它会正常运行(因为我已经通过pip install omdb安装了omdbapi)

下面是完整的场景:

我单击bash创建了一个虚拟环境,其中有一个名为omdb\u proj的virtualenvwrapper(python版本2.7)。 现在我的文件(即助手_函数.py在pythonanywhere(/home/pssukhwani/.virtualenvs/omdb\u proj)的这个路径下上传。你知道吗

还有一件事,当我运行3.5版本的代码,但实际上我已经创建了2.7版本的virtualenv,但它仍然运行3.5版本的代码(好吧,暂时我已经改变了格式,根据3.5版本,但仍然需要一个解决方案)

这是我的助手_函数.py档案,你可以看看。你知道吗

import omdb

def organise_movie_info(movie_details):
    # This function return movie details in a organised way
    movie_details_organised = "Title: " + movie_details.title + \
    "\nIMDB Rating: " + movie_details.imdb_rating + \
    "\nReleased Date: " + movie_details.released + \
    "\nActors: " + movie_details.actors + \
    "\nLanguage: " + movie_details.language + \
    "\nShooting Location: " + movie_details.country + \
    "\nGenre: " + movie_details.genre + \
    "\nWriter: "+ movie_details.writer + \
    "\nDriector: " + movie_details.director + \
    "\nPoster: " + movie_details.poster + \
    "\nRun Time: " + movie_details.runtime + \
    "\nIMDB Votes: " + movie_details.imdb_votes + \
    "\nType: " + movie_details.type + \
    "\nIMDB ID: " + movie_details.imdb_id + \
    "\nPlot: " + movie_details.plot
    return movie_details_organised

def search_by_title(name):
    # This function return movie details by title
    movie_details = omdb.title(name)
    return organise_movie_info(movie_details)

def search_by_id(name):
    # This function return movie details by IMDI ID
    movie_details = omdb.imdbid(name)
    return organise_movie_info(movie_details)

def main(name):
    # This function check whether there is agrument and if it has then
    # is it valid movie name or not.
    if name[0:2] == "tt":
        return search_by_id(name)
    elif name:
        return search_by_title(name)
    else:
        raise Exception('Please enter name')

#print main("Iron Man")

现在就像以前一样,我正试图上传这个在gae上,但由于omdb使用请求,所以我无法在gae上使用,为此我已经主.py包含html文档和所有内容的文件。。你知道吗

import webapp2
import helper_functions as helper 
import requests

form_omdb=""" <html>
    <body style="background-color: grey">
        <form method="post">

            <div class="title">
            <h1><center>OMDB</center></h1>
            <h1><center>(Open Movie Database)<center><h1>
            </div>

            <div class="information">
            <div class="information" style="margin-left: 500px;">
            <label> 
            <h4>Find Movies</h4> <input type="text" name="movie"
            value="%(movie)s">
            </label>

            <br>
            <br>
            <input type="submit">
            </div>
        </form>
    </body> </html> """

class Movie(webapp2.RequestHandler):
    def write_form(self, movie=""):
        self.response.out.write(form_omdb % {"movie": movie})

    def get(self):
        #self.response.headers['Content-Type'] = 'text/plain'
        self.write_form()

    def post(self):
        user_movie = self.request.get('movie')

        movie = helper.main(user_movie)

        if not movie:
            self.write_form("No result with this movie name ",user_movie)
        else:
            self.redirect("/result")

class ResultHandler(webapp2.RequestHandler):
    def get(self):
        self.response.out.write(helper.organise_movie_info(movie_details))

app = webapp2.WSGIApplication([('/', Movie),
                               ('/result', ResultHandler)], debug=True)

所以,请帮助我在这种情况下,因为我无法把主机上的gae以及pythonanywhere这个代码,任何建议都会有所帮助。你知道吗


Tags: 文件nameself版本divformbyreturn