Wie erstelle ich eine virtuelle Umgebung mit Python 3.13 „Free-Threaded“ unter Windows?Python

Python-Programme
Anonymous
 Wie erstelle ich eine virtuelle Umgebung mit Python 3.13 „Free-Threaded“ unter Windows?

Post by Anonymous »

Ich versuche, eine virtuelle Umgebung mit Python 3.13 im „Free-Threaded“-Modus (GIL deaktiviert) unter Windows zu erstellen. Ich habe den GIL-freien Build von Python 3.13 erfolgreich installiert und wenn ich die Installation überprüfe, kann ich den Interpreter python3.13t.exe im Installationsverzeichnis sehen.
Wenn ich jedoch den Befehl verwende:

Code: Select all

python -m venv .venv
Die virtuelle Umgebung wird erstellt, enthält jedoch nicht den Interpreter python3.13t.exe. Stattdessen wird standardmäßig die Standarddatei python.exe verwendet, die GIL-fähig ist.
Ich habe:
  • Überprüft, dass die globale Python-Installation python3.13t.exe enthält.
  • Überprüft die .venv -Verzeichnis, aber es hat nur die Standardeinstellung python.exe.
  • Es wurde versucht, den Interpreter explizit anzugeben mit:

    Code: Select all

    python -m venv --copies .venv
    
Aber das Ergebnis ist das gleiche.
Bearbeiten:
Habe es auch mit dem folgenden Befehl versucht:

Code: Select all

python3.13t -m venv .venv
Dadurch werden sowohl python.exe als auch python3.13t.exe in der virtuellen Umgebung generiert, aber beide scheinen identisch zu sein und haben unterschiedliche Namen. Wenn ich eines davon ausführe, zeigen beide an, dass sie sich im Free-Thread-Modus befinden.
Ist dies das erwartete Verhalten beim Erstellen einer virtuellen Umgebung mit Python 3.13 im Free-Thread-Modus? Wenn nicht, wie kann ich sicherstellen, dass die virtuelle Umgebung nur den Interpreter python3.13t.exe enthält oder ihn zumindest ordnungsgemäß vom Standardinterpreter python.exe unterscheidet?
Edit 2 :
Code, den ich ausführen möchte

Code: Select all

import aiohttp
import asyncio
import sys
import time

async def fetch_data(session, url):
"""
Fetch data from a given URL using an aiohttp session.
"""
try:
async with session.get(url) as response:
data = await response.text()
print(f"Data fetched from {url[:30]}... (length: {len(data)})")
return data
except Exception as e:
print(f"Failed to fetch data from {url}: {e}")
return None

async def main():
"""
Main coroutine to manage the asynchronous fetching of data.
"""
urls = [
"https://jsonplaceholder.typicode.com/posts",
"https://jsonplaceholder.typicode.com/comments",
"https://jsonplaceholder.typicode.com/albums",
"https://jsonplaceholder.typicode.com/photos",
"https://jsonplaceholder.typicode.com/todos",
]

async with aiohttp.ClientSession() as session:
# Create tasks for fetching data from all URLs
tasks = [fetch_data(session, url) for url in urls]

# Gather results asynchronously
results = await asyncio.gather(*tasks)

print("\nAll tasks completed!")
for idx, result in enumerate(results):
print(f"Result {idx + 1} length: {len(result) if result else 'Failed'}")

# Run the main event loop
if __name__ == "__main__":
if sys._is_gil_enabled():
print("GIL enabled")
else:
print("GIL disabled")

t1 = time.time()
asyncio.run(main())
t2 = time.time()

print(f"Execution time: {t2-t1:.2f}s")
Ausgabe:
Beim Ausführen des Codes wird nichts ausgegeben
Image

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post