在 conda 环境中安装时如何修复 azureml-sdk 中的 ModuleNotFoundError

How to fix ModuleNotFoundError in azureml-sdk when installed inside conda environment

我正在使用 Miniconda 4.5.12 在 Windows 10 Pro x64 上设置一个 conda 环境,并在环境中完成了 azureml-sdk 的 pip 安装,但在尝试执行以下命令时出现 ModuleNotFoundError代码:

import azureml.core
azureml.core.VERSION

这是输出:

Traceback (most recent call last):
  File "azureml.py", line 1, in <module>
    import azureml.core
  File "D:\Projects\style-transfer\azureml.py", line 1, in <module>
    import azureml.core
ModuleNotFoundError: No module named 'azureml.core'; 'azureml' is not a package

上面的代码 运行 来自 conda 提示符,测试环境处于活动状态,vscode 选择了相同的环境。

我按照以下设置conda环境:

  1. 创建了 conda 环境 conda create -n test
  2. 激活环境activate test
  3. 已安装 pip conda install pip
  4. 已安装 azureml-sdk pip install azureml-sdk

这会导致根据 conda list 在环境中安装以下软件包:

adal                      1.2.0                     <pip>
antlr4-python3-runtime    4.7.2                     <pip>
applicationinsights       0.11.7                    <pip>
argcomplete               1.9.4                     <pip>
asn1crypto                0.24.0                    <pip>
azure-cli-command-modules-nspkg 2.0.2                     <pip>
azure-cli-core            2.0.54                    <pip>
azure-cli-nspkg           3.0.3                     <pip>
azure-cli-profile         2.1.2                     <pip>
azure-cli-telemetry       1.0.0                     <pip>
azure-common              1.1.16                    <pip>
azure-graphrbac           0.53.0                    <pip>
azure-mgmt-authorization  0.51.1                    <pip>
azure-mgmt-containerregistry 2.5.0                     <pip>
azure-mgmt-keyvault       1.1.0                     <pip>
azure-mgmt-nspkg          3.0.2                     <pip>
azure-mgmt-resource       2.0.0                     <pip>
azure-mgmt-storage        3.1.0                     <pip>
azure-nspkg               3.0.2                     <pip>
azure-storage-blob        1.4.0                     <pip>
azure-storage-common      1.4.0                     <pip>
azure-storage-nspkg       3.1.0                     <pip>
azureml-core              1.0.6                     <pip>
azureml-pipeline          1.0.6                     <pip>
azureml-pipeline-core     1.0.6                     <pip>
azureml-pipeline-steps    1.0.6                     <pip>
azureml-sdk               1.0.6                     <pip>
azureml-telemetry         1.0.6                     <pip>
azureml-train             1.0.6                     <pip>
azureml-train-core        1.0.6                     <pip>
azureml-train-restclients-hyperdrive 1.0.6                     <pip>
backports.tempfile        1.0                       <pip>
backports.weakref         1.0.post1                 <pip>
bcrypt                    3.1.5                     <pip>
ca-certificates           2018.03.07                    0
certifi                   2018.11.29               py37_0
cffi                      1.11.5                    <pip>
chardet                   3.0.4                     <pip>
colorama                  0.4.1                     <pip>
contextlib2               0.5.5                     <pip>
cryptography              2.4.2                     <pip>
docker                    3.6.0                     <pip>
docker-pycreds            0.4.0                     <pip>
futures                   3.1.1                     <pip>
humanfriendly             4.17                      <pip>
idna                      2.8                       <pip>
isodate                   0.6.0                     <pip>
jmespath                  0.9.3                     <pip>
jsonpickle                1.0                       <pip>
knack                     0.5.1                     <pip>
msrest                    0.6.2                     <pip>
msrestazure               0.6.0                     <pip>
ndg-httpsclient           0.5.1                     <pip>
oauthlib                  2.1.0                     <pip>
openssl                   1.1.1a               he774522_0
paramiko                  2.4.2                     <pip>
pathspec                  0.5.9                     <pip>
pip                       18.1                     py37_0
portalocker               1.2.1                     <pip>
pyasn1                    0.4.4                     <pip>
pycparser                 2.19                      <pip>
Pygments                  2.3.1                     <pip>
PyJWT                     1.7.1                     <pip>
PyNaCl                    1.3.0                     <pip>
pyOpenSSL                 18.0.0                    <pip>
pypiwin32                 223                       <pip>
pyreadline                2.1                       <pip>
python                    3.7.1                h8c8aaf0_6
python-dateutil           2.7.5                     <pip>
pytz                      2018.7                    <pip>
pywin32                   224                       <pip>
PyYAML                    3.13                      <pip>
requests                  2.21.0                    <pip>
requests-oauthlib         1.0.0                     <pip>
ruamel.yaml               0.15.51                   <pip>
SecretStorage             2.3.1                     <pip>
setuptools                40.6.3                   py37_0
six                       1.12.0                    <pip>
sqlite                    3.26.0               he774522_0
tabulate                  0.8.2                     <pip>
urllib3                   1.23                      <pip>
vc                        14.1                 h0510ff6_4
vs2015_runtime            14.15.26706          h3a45250_0
websocket-client          0.54.0                    <pip>
wheel                     0.32.3                   py37_0
wheel                     0.30.0                    <pip>
wincertstore              0.2                      py37_0

如果我运行which pip,我得到以下输出,这证实我使用环境中的pip来安装azureml-sdk,我认为:

/c/Users/allan/Miniconda3/envs/test/Scripts/pip

我还可以看到 azureml 包确实存在于环境文件夹结构中。

可能是因为您的 python 文件的名称与您尝试导入的模块名称相同。在这种情况下,将文件重命名为 azureml.py.

以外的名称