如何解决从pythonanywhere导入apschedular venv试图导入错误的calendar.py
将apscheduler导入我的任务文件时,它将尝试导入我创建的calendar.py文件,并将其放置在名为app_code的文件夹中,而不是模块本身的calendar.py文件中。
这是错误:
Sep 1 03:42:44 Traceback (most recent call last):
Sep 1 03:42:44 File "/home/vicinstofsport/bookingsystem/app_code/tasks.py",line 7,in <module>
Sep 1 03:42:44 from apscheduler.schedulers.blocking import BlockingScheduler
Sep 1 03:42:44 File "/home/vicinstofsport/.virtualenvs/bookingvenv/lib/python3.8/site-packages/apscheduler/__init__.py",line 1,in <module>
Sep 1 03:42:44 from pkg_resources import get_distribution,DistributionNotFound
Sep 1 03:42:44 File "/home/vicinstofsport/.virtualenvs/bookingvenv/lib/python3.8/site-packages/pkg_resources/__init__.py",line 36,in <module>
Sep 1 03:42:44 import email.parser
Sep 1 03:42:44 File "/usr/lib/python3.8/email/parser.py",line 12,in <module>
Sep 1 03:42:44 from email.feedparser import FeedParser,BytesFeedParser
Sep 1 03:42:44 File "/usr/lib/python3.8/email/feedparser.py",line 27,in <module>
Sep 1 03:42:44 from email._policybase import compat32
Sep 1 03:42:44 File "/usr/lib/python3.8/email/_policybase.py",line 9,in <module>
Sep 1 03:42:44 from email.utils import _has_surrogates
Sep 1 03:42:44 File "/usr/lib/python3.8/email/utils.py",line 33,in <module>
Sep 1 03:42:44 from email._parseaddr import quote
Sep 1 03:42:44 File "/usr/lib/python3.8/email/_parseaddr.py",line 16,in <module>
Sep 1 03:42:44 import time,calendar
Sep 1 03:42:44 File "/home/vicinstofsport/bookingsystem/app_code/calendar.py",line 3,in <module>
Sep 1 03:42:44 from app_code.queries import Bookings,VisSessions
Sep 1 03:42:44 ModuleNotFoundError: No module named 'app_code'
解决方法
您的app_code
目录在sys.path中位于Python 3.8的site-packages
之前,因此它是Python首先看到的目录。更改sys.path中目录的顺序,它将找到另一个模块。但是,我认为更深层的问题是您的sys.path中有app_code
而不是bookingsystem
。您应该在所有代码所在的位置都有一个具有唯一名称的顶层模块,以便可以在导入中使用顶层模块,以确保导入正确的内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。