# 實體與虛擬環境Python

## 實體環境Python

實體環境指的是在操作系統中直接安裝Python並在全域範圍內運行的情況，而虛擬環境是在不同的封閉環境中運行Python的情況。

實體環境特點：

1. 簡單直接：在實體環境中安裝Python和套件是一個簡單的過程，尤其是在某些發行版和操作系統中，Python可能已經預先安裝好了。
2. 無需配置：在實體環境中，所有的Python項目都可以共享全域安裝的Python解釋器和套件，減少了配置的需要。
3. 系統級特權：在實體環境中，你可以直接訪問系統級資源，比如訪問操作系統庫、硬件設備等。

## 虛擬環境Python

虛擬環境在Python開發中有著許多優點，主要包括以下幾點：

1. 隔離環境：虛擬環境能在同一台計算機上創建多個獨立的Python環境，每個環境都有自己的Python解釋器和安裝的套件。避免不同項目之間的相互干擾，確保各個項目之間的依賴關係不衝突。
2. 套件管理：在虛擬環境中，用戶更為方便地安裝、更新和移除需要的套件，而不會影響到其他環境的套件配置。這使得使用者可以在不同項目中使用不同版本的套件，而不會造成衝突。
3. 版本控制：虛擬環境幫助用戶確保項目在不同的Python版本之間保持兼容。如果用戶需要在不同版本的Python上運行項目，可以在不同的虛擬環境中安裝相應版本的Python解釋器。
4. 測試環境：虛擬環境使得在不同環境中進行測試變得更加容易。用戶可以在不同的虛擬環境中運行項目，以確保其在各種場景下的正常運作。
5. 簡化部署：當用戶準備部署電腦的應用程序時，虛擬環境可以幫助用戶確保部署時所使用的依賴與本地開發環境一致，從而避免因為環境差異而引起的問題。

總的來說，虛擬環境提供了更好的套件管理和環境隔離，使得Python項目的開發、測試和部署都更加方便、可靠。常用的虛擬環境工具有`virtualenv`和Python 3.3版本後內建的`venv，更建議的方式是使用`Ansys Python Manager來安裝。

## 當應用軟件不支援虛擬環境Python的解決方法

雖然虛擬環境對開發者友善，但有些應用軟體不一定支援虛擬環境的Python。有可能會遇到以下情境，例如：在虛擬的Spyder開發完\*.py檔案，但放到Ansys optiSLang<mark style="color:orange;">(註六)</mark>中運行，雖然軟體可以找到虛擬環境python(如圖2-7)，但軟體會出現找不到對應模組錯誤。

<figure><img src="/files/gqkaHz2sHO92zXA7Sa64" alt=""><figcaption><p>圖2-7</p></figcaption></figure>

此時，筆者建議的解決方法是將灌好在虛擬環境的模組，複製拷貝至實體環境的模組中。如圖2-8。如此就可以在應用軟體中正常運行。

<figure><img src="/files/exEEErQgJhEalzBX7POe" alt=""><figcaption><p>圖2-8</p></figcaption></figure>

<mark style="color:orange;">註六: Ansys optiSLang 在2023R2版本，尚未支援虛擬環境的Python。</mark>

## *<mark style="color:blue;">**2023/07 updated.**</mark>*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://eeman.gitbook.io/maxwell-tools/pyaedt/shi-ti-yu-xu-ni-huan-jing-python.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
