bytecodealliance / bytecodealliance/componentize-py
Allow dynamic imports in sandbox example
- Langage dominant
- Rust
- Étoiles
- 277
- Forks
- 51
- Merge moyen
- 12 h 10 min
- PR mergées (30 j)
- 10
Description
I'd like to execute code using the sandbox example, but am running into an issue. I want to allow exec'd code to import packages, but if I don't import packages in the host script, the guest code won't run.
```python
# Guest code
import json
print(json.dumps({"message": "Hello"}))
```
```python
# Works
import sys
import json
from command import exports
class Run(exports.Run):
def run(self):
with open(sys.argv[1]) as f:
code = f.read()
exec(code)
```
```python
# Fails
import sys
from command import exports
class Run(exports.Run):
def run(self):
with open(sys.argv[1]) as f:
code = f.read()
exec(code)
```
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez au point d’entrée Run.run de l’exemple de sandbox, en particulier à l’endroit où il lit le code invité et appelle exec. Exécutez le programme invité montré avec et sans l’importation de json côté hôte, puis suivez le comportement de l’importation. C’est terminé lorsque le code invité peut importer json dynamiquement sans exiger que le script hôte l’importe au préalable.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- security
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100