cloudflare / cloudflare/workerd
🐛 BUG:Python dependency packages cannot be correctly imported on worker
- Dominant language
- C++
- Stars
- 8.7k
- Forks
- 739
- Avg merge
- 2d 20h
- Merged PRs (30d)
- 174
Description
### Which Cloudflare product(s) does this pertain to?
Workers Runtime
### What version(s) of the tool(s) are you using?
wrangler@3.60.3
### What version of Node are you using?
Python 3.10.12
### What operating system and version are you using?
Ubuntu 22.04
### Describe the Bug
### Observed behavior
Python dependency packages cannot be correctly imported on worker, I want to imported requests package, but the requests depend on the urlib3, when i importing the failed happened. I had download the dependency package to the local.
Uncaught Error: PythonError: Traceback (most recent call last):
File "/lib/python312.zip/_pyodide/_base.py", line 629, in pyimport_impl
res = __import__(stem, fromlist=fromlist)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/session/metadata/entry.py", line 4, in
import requests
File "/session/metadata/requests/__init__.py", line 43, in
import urllib3
File "/session/metadata/urllib3/__init__.py", line 209, in
from .contrib.emscripten import inject_into_urllib3 # noqa: 401
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/session/metadata/urllib3/contrib/emscripten/__init__.py", line 6, in
from .connection import EmscriptenHTTPConnection, EmscriptenHTTPSConnection
File "/session/metadata/urllib3/contrib/emscripten/connection.py", line 17, in
from .fetch import _RequestError, _TimeoutError, send_request, send_streaming_request
File "/session/metadata/urllib3/contrib/emscripten/fetch.py", line 62, in
.read_text(encoding="utf-8")
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lib/python312.zip/pathlib.py", line 1027, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lib/python312.zip/pathlib.py", line 1013, in open
return io.open(self, mode, buffering, encoding, errors, newline)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 44] No such file or directory:
'/session/metadata/urllib3/contrib/emscripten/emscripten_fetch_worker.js'
at null. (pyodide-internal:generated/pyodide.asm:20:9998) in new_error
at [object Object] in $wrap_exception
at [object Object] in $pythonexc2js
at null. (pyodide-internal:generated/pyodide.asm:20:607956) in Module._pythonexc2js
at null. (pyodide-internal:generated/pyodide.asm:20:64098) in
Module.callPyObjectKwargs
at null. (pyodide-internal:generated/pyodide.asm:20:65055) in Module.callPyObject
at null. (pyodide-internal:generated/pyodide.asm:20:79132) in apply
at null. (pyodide-internal:generated/pyodide.asm:20:77371) in apply
at null. (pyodide-internal:generated/pyodide.asm:20:102862) in pyimport
at null. (pyodide:python-entrypoint-helper:31:18) in pyimportMainModule
[code: 10021]
### Expected behavior
npx wrangler deploy
### Steps to reproduce
The simple worker file
from js import Response
import requests
async def on_fetch(request, env):
return Response.new("Hello world!")
### Please provide a link to a minimal reproduction
_No response_
### Please provide any relevant error logs
Uncaught Error: PythonError: Traceback (most recent call last):
File "/lib/python312.zip/_pyodide/_base.py", line 629, in pyimport_impl
res = __import__(stem, fromlist=fromlist)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/session/metadata/entry.py", line 4, in
import requests
File "/session/metadata/requests/__init__.py", line 43, in
import urllib3
File "/session/metadata/urllib3/__init__.py", line 209, in
from .contrib.emscripten import inject_into_urllib3 # noqa: 401
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/session/metadata/urllib3/contrib/emscripten/__init__.py", line 6, in
from .connection import EmscriptenHTTPConnection, EmscriptenHTTPSConnection
File "/session/metadata/urllib3/contrib/emscripten/connection.py", line 17, in
from .fetch import _RequestError, _TimeoutError, send_request, send_streaming_request
File "/session/metadata/urllib3/contrib/emscripten/fetch.py", line 62, in
.read_text(encoding="utf-8")
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lib/python312.zip/pathlib.py", line 1027, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lib/python312.zip/pathlib.py", line 1013, in open
return io.open(self, mode, buffering, encoding, errors, newline)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 44] No such file or directory:
'/session/metadata/urllib3/contrib/emscripten/emscripten_fetch_worker.js'
at null. (pyodide-internal:generated/pyodide.asm:20:9998) in new_error
at [object Object] in $wrap_exception
at [object Object] in $pythonexc2js
at null. (pyodide-internal:generated/pyodide.asm:20:607956) in Module._pythonexc2js
at null. (pyodide-internal:generated/pyodide.asm:20:64098) in
Module.callPyObjectKwargs
at null. (pyodide-internal:generated/pyodide.asm:20:65055) in Module.callPyObject
at null. (pyodide-internal:generated/pyodide.asm:20:79132) in apply
at null. (pyodide-internal:generated/pyodide.asm:20:77371) in apply
at null. (pyodide-internal:generated/pyodide.asm:20:102862) in pyimport
at null. (pyodide:python-entrypoint-helper:31:18) in pyimportMainModule
[code: 10021]
Contributor guide
Assessment
This issue has not been assessed yet.