我在Python,Django框架中編寫了以下代碼:class ImageGenerator: def __init__(self, tip): self.tip = tip def remove_transparency(self, im, bg_colour=(250, 250, 250)): if im.mode in ('RGBA', 'LA') or (im.mode == 'P' and 'transparency' in im.info): alpha = im.convert('RGBA').split()[-1] bg = Image.new("RGBA", im.size, bg_colour + (255,)) bg.paste(im, mask=alpha) return bg else: return im def generate(self): print('Triggered') border = 3 home_url = self.tip.fixture.home.image_url away_url = self.tip.fixture.away.image_url home_name = self.tip.fixture.home.name away_name = self.tip.fixture.away.name response = requests.get(home_url) home = self.remove_transparency(Image.open(BytesIO(response.content))) home_w, home_h = home.size response = requests.get(away_url) away = self.remove_transparency(Image.open(BytesIO(response.content))) away_w, away_h = away.size background_image = Image.open('/static/background.jpg', 'r')當我執行此代碼時,我收到以下錯誤:FileNotFoundError at /fixtures/view/54848[Errno 2] No such file or directory: '/static/background.jpg'Request Method: POSTRequest URL: http://127.0.0.1:8000/fixtures/view/54848Django Version: 3.0.3Exception Type: FileNotFoundErrorException Value: [Errno 2] No such file or directory: '/static/background.jpg'Exception Location: /home/sander/.local/lib/python3.6/site-packages/PIL/Image.py in open, line 2809Python Executable: /usr/bin/python3Python Version: 3.6.9Python Path: ['/home/sander/git/football', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/sander/.local/lib/python3.6/site-packages', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']Server time: Fri, 28 Feb 2020 18:56:54 +0000我嘗試使用.這將產生相同的錯誤。該命令也無法解決問題。staticfrom django.templatetags.static import staticcollectstatic有人知道這個問題的解決方案嗎?
1 回答

12345678_0001
TA貢獻1802條經驗 獲得超5個贊
我認為您的代碼在行中斷開:
background_image = Image.open('/static/background.jpg', 'r')
由于您在路徑的開頭使用斜杠,因此Python會嘗試在文件系統中將此文件查找為絕對路徑。確保它在那里編寫時存在。
您可以嘗試使用完整的絕對路徑,但最佳做法是使用相對路徑。
添加回答
舉報
0/150
提交
取消