[英]Facing problem to set service name from env variable in serverless.yml file after upgrading to latest version
[英]conda env create from yml locks up
在一個簡單的測試中,我嘗試創建一個基本的 Conda 環境,將該環境導出到 YAML 文件,然后在完全相同的計算實例上從 YAML 文件重新創建環境。 無論我嘗試什么,重新創建步驟都會掛起(失敗)並且沒有錯誤消息(超時)
這是在 AWS EC2 Linux 實例上。
命令順序如下:
conda create -n myenv python=3.10.4
conda activate myenv
conda list ## output is shown below
conda env export > newenv.yml ## yml contents are shown below...so far so good
conda deactivate
conda env create -n newenv --f newenv.yml ## this is where it hangs up/freezes
<output> Collecting package metadata (repodata.json): -
<output> Collecting package metadata (repodata.json): - Killed ## after about 5mins
我還嘗試了多種變體,在嘗試使用相同的名稱 (myenv) 重新創建它之前刪除了 myenv。 anaconda3/envs
文件夾的文件夾權限是775
,創建環境沒有問題。 我已經更新、清理並重新初始化了 Conda,並多次重新啟動了我的實例。
任何幫助/想法將不勝感激。 這是我的第一個 Python 項目。
(myenv) [ec2-user@ip-172-31-93-141 ~]$ conda list
# packages in environment at /home/ec2-user/anaconda3/envs/myenv:
#
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 2_gnu conda-forge
bzip2 1.0.8 h7f98852_4 conda-forge
ca-certificates 2022.9.24 ha878542_0 conda-forge
ld_impl_linux-64 2.39 hcc3a1bd_1 conda-forge
libffi 3.3 h58526e2_2 conda-forge
libgcc-ng 12.2.0 h65d4601_19 conda-forge
libgomp 12.2.0 h65d4601_19 conda-forge
libsqlite 3.40.0 h753d276_0 conda-forge
libstdcxx-ng 12.2.0 h46fd767_19 conda-forge
libuuid 1.41.5 h5eee18b_0
libzlib 1.2.13 h166bdaf_4 conda-forge
ncurses 6.3 h27087fc_1 conda-forge
openssl 1.1.1s h0b41bf4_1 conda-forge
pip 22.3.1 pyhd8ed1ab_0 conda-forge
python 3.10.4 h12debd9_0
readline 8.1.2 h0f457ee_0 conda-forge
setuptools 65.5.1 pyhd8ed1ab_0 conda-forge
sqlite 3.40.0 h4ff8645_0 conda-forge
tk 8.6.12 h27826a3_0 conda-forge
tzdata 2022g h191b570_0 conda-forge
wheel 0.38.4 pyhd8ed1ab_0 conda-forge
xz 5.2.6 h166bdaf_0 conda-forge
zlib 1.2.13 h166bdaf_4 conda-forge
name: myenv
channels:
- conda-forge
- defaults
dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=2_gnu
- bzip2=1.0.8=h7f98852_4
- ca-certificates=2022.9.24=ha878542_0
- ld_impl_linux-64=2.39=hcc3a1bd_1
- libffi=3.3=h58526e2_2
- libgcc-ng=12.2.0=h65d4601_19
- libgomp=12.2.0=h65d4601_19
- libsqlite=3.40.0=h753d276_0
- libstdcxx-ng=12.2.0=h46fd767_19
- libuuid=1.41.5=h5eee18b_0
- libzlib=1.2.13=h166bdaf_4
- ncurses=6.3=h27087fc_1
- openssl=1.1.1s=h0b41bf4_1
- pip=22.3.1=pyhd8ed1ab_0
- python=3.10.4=h12debd9_0
- readline=8.1.2=h0f457ee_0
- setuptools=65.5.1=pyhd8ed1ab_0
- sqlite=3.40.0=h4ff8645_0
- tk=8.6.12=h27826a3_0
- tzdata=2022g=h191b570_0
- wheel=0.38.4=pyhd8ed1ab_0
- xz=5.2.6=h166bdaf_0
- zlib=1.2.13=h166bdaf_4
prefix: /home/ec2-user/anaconda3/envs/myenv
可能是頻道混合問題。 我看到python
和libuuid
來自默認(即main , anaconda )頻道,而其他一切都是 Conda Forge。 如果你有channel_priority: strict
,那么conda- forge 通道中的任何包(它被 YAML 賦予優先級,因為它是第一個),將屏蔽較低優先級通道(默認值)中的任何同名包。
具體來說,Conda 被告知要找到具有特定版本 ( python
) 的h12debd9_0
,該版本僅在默認情況下可用,但由於 conda - forge 有python
可用的包,因此只會考慮這些包。 掛起可能只是Conda試圖“解釋”為什么找不到解決方案。
如果這是問題所在,那么將通道優先級更改為flexible
應該可以正常工作。
conda config --set channel_priority flexible
如果您改為從conda-forge開始,那么一切都應該沒問題。 如今,Conda Forge 完全可以自給自足。 而 Anaconda 用戶通常需要使用 Conda Forge 包來填補空白。 這種做法(Anaconda 文檔鼓勵這種做法,但幾乎沒有警告它有多大問題)會產生很大一部分用戶問題。
就個人而言,我推薦Mambaforge的基本安裝。 它默認使用conda-forge ,在基礎環境中安裝最少的包,並且自帶Mamba,可以快速解決環境問題。
問題原來是 memory 問題(如缺少)。 我試圖在 t2.micro 免費套餐上的 AWS EC2 實例上執行此操作。 這個實例只有 1GB 的 memory (RAM),並且隱藏在我從 dmesg 命令(命令失敗后從終端運行)得到的反饋中,我注意到一條“內存不足”行。 我增加了實例大小,問題就消失了。 謝謝您的幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.