Can a Python script detect it is running in repl.it?
Is it possible for a Python script to check if it is running within repl.it?
Voters
coreyseliger
It seems that repl.it sets some environment variables:
import os [k for k in os.environ.keys() if 'REPL_' in k]
...returns:
['REPL_SLUG', 'REPL_IMAGE', 'REPL_ID', 'REPL_OWNER', 'REPL_LANGUAGE', 'REPL_PUBKEYS']
I also notice that they embed a DB URL environment variable as well:
import os [k for k in os.environ.keys() if 'REPLIT_' in k]
...returns:
['REPLIT_DB_URL']
The documentation seems to reference some of these variables directly and encourages their use. See here:
Andy_4sberg
detect if directory /home/runner exists, it isn't likely for it to exist on some other device, but it does on repl.it. For it to exist on another device would mean that device is linux/unix based with the username of a user as "runner". Example:
import os if os.path.isdir("/home/runner") == True: # Some code here else: # Some code here
I'm afraid that this is not possible. Repl.it is running a Linux VM which does not provide any info on if it's a normal Linux machine, or a repl.it server.
@Vandesm14 Thank you for your reply. Would it not be possible to set an environment variable in the VM, that would suggest that this is a repl.it server?
I asked this question in the context of a specific issue I am having: https://repl.it/talk/ask/Is-it-possible-to-use-PIL-in-replit-to-show-images/24944. Essentially, this is an example of a program that would need to differentiate its behaviour depending on whether or not it is running in repl.it
@boukeas You can set .env variables manually and pull from that, but it's far from automatic.
https://pypi.org/project/python-dotenv/
@boukeas if @Vandesm14 answered your question make sure to mark t as correct
@Vandesm14 What I am saying is it would be possible for a program to detect if it's running in repl.it if a specific environment variable was automatically set by repl.it in the Linux VM.
@Vandesm14 it is, check if REPL_ID env exists