我遇到了几种方法,但不知道哪一种是最可靠的或最有效的
有些环境提供了一个环境变量,如
os.getenv('WHEREAMI') # some cluster
os.getenv('DYNO') # Heroku
Azure似乎使用了类似
RoleEnvironment.IsAvailable
在Pythony上我看到用户名
USERNAME=my_pythonanywhere_username
可以使用。或者类似的
subprocess.run(['hostname'])
它返回了一些东西,但我不确定这是否可靠
还有其他方法吗?什么是好的选择
Pythony这里是一个很好的问题。检查您的用户名是一个很好的解决方案,但是如果(例如)您的PythonyWhere用户名与您在自己的机器上使用的用户名相同,那么当然这并不理想
如果您没有使用SSH连接到我们的服务器,那么一个好的替代解决方案是查看
PYTHONANYWHERE_SITE
环境变量。这将始终设置为www.pythonanywhere.com
或eu.pythonanywhere.com
,具体取决于您是在我们的美国网站上还是在我们的欧盟网站上。但是,当您通过SSH登录时,它不会被设置您还可以查看主机名}炮击更快的方法。返回的主机名会随着时间的推移而变化,这取决于代码运行的位置,但它将遵循一种常见模式。例如,如果您现在在美国Pythonywhere的控制台中运行该代码,您将得到类似
socket.gethostname()
可能是比用{blue-liveconsole3
的代码,而如果您从网站的代码运行它,您将得到类似blue-liveweb20
的代码。在下一次系统更新之后,这些可能会更改为green-liveconsole3
和green-liveweb20
。通常,模式是green
或blue
,然后是-
,然后是live
(对于在美国系统上运行的代码)或eu
(对于在欧盟运行的代码),然后是代码运行的服务器类型,然后是一个数字相关问题 更多 >
编程相关推荐