我可以知道如何从x86-64体系结构 linux和特定环境中获得已安装的包。
如何使用相同的包在aarch64体系结构中创建新的conda环境?
首先,在名为L2的x8664体系结构linux机器中,我导出了包。
conda list --export > envconda.txt当我打开envconda.txt时,
# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: linux-64
_libgcc_mutex=0.1=main
_r-mutex=1.0.0=anacondar_1我将平台改为linux-aarch64,因为我将在aarch64体系结构中安装软件包。
# This file may be used to create an environment using:
# $ conda create --name <env> --file <this file>
# platform: linux-aarch64
_libgcc_mutex=0.1=main
_r-mutex=1.0.0=anacondar_1在aarch64 linux机器L1中,我创建了一个conda环境conda create -n envtest --file envconda.txt。
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed
PackagesNotFoundError: The following packages are not available from current channels:
- setuptools==36.4.0=py36_1
- kiwisolver==1.1.0=pypi_0
- pyyaml==3.13=pypi_0
- jedi==0.10.2=py36_2
- libgcc==5.2.0=0
- jsonschema==2.6.0=py36_0
- ptyprocess==0.5.2=py36_0
- prompt_toolkit==1.0.15=py36_0
- libstdcxx-ng==9.1.0=hdf63c60_0
- tqdm==4.36.1=pypi_0
- tomli==1.2.3=pypi_0
- astor==0.7.1=pypi_0
- argparse==1.4.0=pypi_0
- pycparser==2.19=pypi_0
- testpath==0.3.1=py36_0
- cudnn==7.6.5=cuda10.2_0
- asn1crypto==0.22.0=py36_0
- dataclasses==0.8=pypi_0
- platformdirs==2.4.0=pypi_0
- krbcontext==0.10=pypi_07
- decorator==4.1.2=py36_0
- lazy-object-proxy==1.7.1=pypi_0
- gsl==2.2.1=0
- pexpect==4.2.1=py36_0
- icu==54.1=0
- freetype==2.5.5=2
- bleach==1.5.0=py36_0
- matplotlib==3.1.1=pypi_0
- wheel==0.29.0=py36_0
- cudatoolkit==10.2.89=hfd86e86_1
- glib==2.50.2=1
- kneed==0.7.0=pypi_0
- sqlite==3.13.0=0
- importlib-metadata==1.7.0=pypi_0
- python==3.6.2=0
- jpeg==9b=0
- pango==1.40.3=1
- fontconfig==2.12.1=3
- resampy==0.2.2=pypi_0
- nbformat==4.4.0=py36_0
- pixman==0.34.0=0
- scikit-learn==0.21.3=pypi_0
- termcolor==1.1.0=pypi_0
- typed-ast==1.5.4=pypi_0
- keras-applications==1.0.8=pypi_0
- harfbuzz==0.9.39=2
- libffi==3.2.1=1
- jupyter_client==5.1.0=py36_0
- gssapi==1.6.9=pypi_0
- curl==7.54.1=0
- keras==2.2.4=pypi_0
- isort==5.10.1=pypi_0
- simplegeneric==0.8.1=py36_1
- joblib==0.14.0=pypi_0
- pypandoc==1.6.3=pypi_0
- python-dateutil==2.8.2=pypi_0
- ipython_genutils==0.2.0=py36_0
- pyparsing==2.4.2=pypi_0
- ca-certificates==2022.6.15=ha878542_0
- krb5==1.13.2=0
- path.py==10.3.1=py36_0
- markdown==3.0.1=pypi_0
- requests-kerberos==0.12.0=pypi_0
- hdfs==2.5.8=pypi_0
- traitlets==4.3.2=py36_0
- tornado==4.5.2=py36_0
- librosa==0.7.0=pypi_0
- pyasn1==0.4.8=pypi_0
- blas==1.0=mkl
- zlib==1.2.11=0
- libogg==1.3.2=h14c3975_1001
- mkl==2017.0.3=0
- terminado==0.6=py36_0
- libflac==1.3.1=hf484d3e_1002
- python-levenshtein==0.12.2=pypi_0
- werkzeug==0.14.1=pypi_0
- pyspark==2.3.2=pypi_0
- urllib3==1.26.9=pypi_0
- bzip2==1.0.6=3
- html5lib==0.9999999=py36_0
- pywavelets==1.1.1=pypi_0
- zeromq==4.1.5=0
- pykerberos==1.2.1=pypi_0
Current channels:
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/main/noarch
- https://repo.anaconda.com/pkgs/r/linux-aarch64
- https://repo.anaconda.com/pkgs/r/noarch
- https://conda.anaconda.org/conda-forge/linux-aarch64
- https://conda.anaconda.org/conda-forge/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.可以知道如何在aarch64体系结构中成功地安装软件包吗?
最后但同样重要的是,当我使用pip install numpy安装软件包时,我得到了这个错误Illegal instruction (core dumped)。
对于这个问题,可以知道如何在linux aarch64体系结构中解决这个问题吗?
发布于 2022-08-10 16:31:34
由于多种原因,这种做法不太可能奏效:
cudatoolkit构建。环境中包含的包越多,解决它就越困难,跨平台解决使这个问题更加严重。例如,我会完全移除任何与木星相关的包裹。在未来,尝试提前计划为特定项目创建专用环境,并且只安装绝对是required.mkl是特定于体系结构的.然而,如果您想尝试重新创建环境的近似,有一些选项。首先,我们不能用conda list --export来实现这一点--它根本不处理安装了来自PyPI的包的环境。
以PyPI为中心的方法
由于大部分环境来自PyPI,所以我的第一个倾向是建议放弃Conda组件并使用pip路由。也就是说,使用
pip list --format=freeze > requirements.txt要捕获Python包,请创建一个新环境,如下所示:
environment.yaml
name: foo
channels:
- conda-forge
- nodefaults
dependencies:
- python=3.6
- pip
- pip:
- -r requirements.txt在同一个文件夹中使用requirements.txt和environment.yaml创建环境
## "foo" is arbitrary - pick something descriptive
conda env create -n foo -f environment.yaml保留一些Conda软件包
您还可以尝试通过将一个conda env export和以前的pip list混合在一起来防止Conda中的某些部分。具体来说,导出一个最小的环境定义,使用
conda env export --from-history > environment.yaml编辑此文件以包含特定版本的Python,删除所有无法用于linux-aarch64的包(如mkl),并添加pip:部分,如下所示:
environment.yaml
#...
dependencies:
- python=3.6
# ...
- pip
- pip:
- -r requirements.txt然后与以下内容一起使用:
conda env create -n foo -f environment.yaml期望迭代几次,以发现平台无法找到的内容。我强烈建议使用mamba而不是Conda来减少这个解决时间。
https://stackoverflow.com/questions/73301507
复制相似问题