我收到错误父模块''未加载,无法执行相对导入

时间:2016-08-08 21:13:36

标签: python django heroku redis

我正在尝试使用我创建的名为my_addqueue.py的文件,它位于此处

src\
    blog\
       my_addqueue.py

我正在尝试使用的功能位于同一目录

src\
    blog\
       my_addqueue.py
       my_scrapy.py

我正在尝试学习如何在我的django应用程序中使用redis。但是当我跑步时

python blog/my_addqueue.py

我收到以下错误消息

Parent module '' not loaded, cannot perform relative import.

这是我的代码

my_scraps.py

   def p_panties():
        def swappo():
            user_one = ' "Mozilla/5.0 (Windows NT 6.0; WOW64; rv:24.0) Gecko/20100101 Firefox/24.0" '
            user_two = ' "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5)" '
            user_thr = ' "Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko" '
            user_for = ' "Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:10.0) Gecko/20100101 Firefox/10.0" '

            agent_list = [user_one, user_two, user_thr, user_for]
            a = random.choice(agent_list)
            return a

        headers = {
            "user-agent": swappo(),
            "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
            "accept-charset": "ISO-8859-1,utf-8;q=0.7,*;q=0.3",
            "accept-encoding": "gzip,deflate,sdch",
            "accept-language": "en-US,en;q=0.8",
        }

        pan_url = 'http://www.examop.com'
        shtml = requests.get(pan_url, headers=headers)
        soup = BeautifulSoup(shtml.text, 'html5lib')
        video_row = soup.find_all('div', {'class': 'post-start'})
        name = 'pan videos'

        if os.getenv('_system_name') == 'OSX':
            author = User.objects.get(id=2)
        else:
            author = User.objects.get(id=3)

        def youtube_link(url):
            youtube_page = requests.get(url, headers=headers)
            soupdata = BeautifulSoup(youtube_page.text, 'html5lib')
            video_row = soupdata.find_all('p')[0]
            entries = [{'text': div,
                        } for div in video_row]
            tubby = str(entries[0]['text'])
            urls = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', tubby)
            cleaned_url = urls[0].replace('?&autoplay=1', '')
            return cleaned_url

        def yt_id(code):
            the_id = code
            youtube_id = the_id.replace('https://www.youtube.com/embed/', '')
            return youtube_id

        def strip_hd(hd, move):
            str = hd
            new_hd = str.replace(move, '')
            return new_hd

        entries = [{'href': div.a.get('href'),
                    'text': strip_hd(strip_hd(div.h2.text, '– Official video HD'), '– Oficial video HD').lstrip(),
                    'embed': youtube_link(div.a.get('href')), #embed
                    'comments': strip_hd(strip_hd(div.h2.text, '– Official video HD'), '– Oficial video HD').lstrip(),
                    'src': 'https://i.ytimg.com/vi/' + yt_id(youtube_link(div.a.get('href'))) + '/maxresdefault.jpg', #image
                    'name': name,
                    'url': div.a.get('href'),
                    'author': author,
                    'video': True

                    } for div in video_row][:13]

        for entry in entries:
            post = Post()
            post.title = entry['text']
            title = post.title
            if not Post.objects.filter(title=title):
                post.title = entry['text']
                post.name = entry['name']
                post.url = entry['url']
                post.body = entry['comments']
                post.image_url = entry['src']
                post.video_path = entry['embed']
                post.author = entry['author']
                post.video = entry['video']
                post.status = 'draft'
                post.save()
                post.tags.add("video", "Musica")
        return entries

my_addqueue.py

from rq import Queue
from redis import Redis
from .my_scraps import p_panties

redis_con = Redis()
q = Queue('important', connection=redis_con)

task = q.enqueue(p_panties())
print('noted')

我该如何解决这个问题?

编辑文件结构

enter image description here

0 个答案:

没有答案