簡體   English   中英

Windows中調用python腳本時自動打開虛擬環境

[英]Automatically open a virtual environment when calling a python script in Windows

這個問題以前曾被問過,但答案都是幾年前的,我無法為我工作,所以我會很感激一些幫助。

問題很簡單,真的:我有一個 python 腳本和一個虛擬環境,當我雙擊它或從另一個程序調用它時,我希望它在其中運行。 我怎樣才能做到這一點?

一些想法

社邦

在虛擬環境中放置一個指向 Python 解釋器的shebang ,完整路徑位於腳本頂部。

#!/path/to/my/venv/bin/python

import sys

print(sys.executable)

外殼/批處理腳本

編寫一個 shell 腳本來包裝對實際 Python 腳本的調用:

#!/usr/bin/env sh

/path/to/my/venv/bin/python /path/to/my/script.py

Python 包裝

#!/usr/bin/env python3

import subprocess

command = [
    '/path/to/my/venv/bin/python',
    '/path/to/my/script.py',
]
subprocesss.check_call(command)

您必須將包目錄地址添加到您的sys.path

sys.path sys 模塊中的內置變量。 它包含解釋器將在其中搜索所需模塊的目錄列表。

在腳本頂部添加下面的行,現在您可以雙擊腳本文件,一切都必須正常工作

import sys; sys.path.append("./<environment path>/Lib/site-packages")

這是一個簡單的解決方案,但是正如sinoroc所說,這不是一個好的解決方案,因為在這種情況下,您使用的是系統解釋器而不是虛擬環境解釋器,所以如果事情沒有按預期工作,我不會感到驚訝。


你也可以下載你需要的所有包並將它們解壓縮到單個文件夾中,然后將該文件夾添加到sys.path

首先使用以下命令下載您需要的軟件包

pip download <package names> --dest <directory name>

例如:

pip download requests --dest packages

最后添加文件夾包含你的包到你的路徑

import sys; sys.path.append("./<packages directory>")

推薦解決方案

最好的解決方案是為 windows 或 shell 腳本編寫小批處理腳本,為 linux 自動激活虛擬環境,然后運行您的腳本

首先為 windows 創建帶有.bat擴展名的文件或為 linux 創建帶有.sh擴展名的文件,然后在下面添加行

對於.bat文件

<environment path>\Scripts\activate && python <script name>.py

對於.sh文件

source <environment path>/bin/activate && python <script name>.py

現在您可以單擊此批處理腳本 * .bat文件或 shell 腳本 * .sh文件,一切正常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM