【问题标题】:Why PyCharm does not load file/module from specified directory?为什么 PyCharm 不从指定目录加载文件/模块?
【发布时间】:2018-01-20 05:12:05
【问题描述】:

我想在“深度学习”文件夹中加载一个名为 lr_utils 的模块/文件。

我对 Python 和 PyCharm 比较陌生。在我的其他语言中,我只是更改目录并加载包。但是,这在 PyCharm 中不起作用。

import os
> os.chdir("/Users/Desktop/Deep Learning")
> os.getcwd()
'/Users/Desktop/Deep Learning'

目录已更改。让我们导入。

from lr_utils import load_dataset

现在,我收到以下错误消息:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/Applications/PyCharm CE.app/Contents/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 20, in do_import
    module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'lr_utils'

我一直在阅读您可以转到 PyCharm 解释器并手动添加路径。但这太乏味了!如果我有多个路径怎么办?如果我想向我发送代码怎么办?如果我切换到不同的计算机怎么办?

底线:我只想即时更改目录。

【问题讨论】:

    标签: python directory pycharm


    【解决方案1】:

    简短的回答:你不能。

    更改目录与​​模块加载没有任何关系。然而,重要的是 python 路径——Python 将在其中查找模块的一组目录。它包括启动 Python 的目录,以及一组包含 Python 模块的文件夹。

    虽然没有干净的解决方案,但有几个肮脏的解决方法。例如,您可以设置 PYTHONPATH 以将所需文件夹包含为包文件夹,或从项目文件夹创建符号链接。

    【讨论】:

    • 如果我想将我的代码带到另一台计算机上怎么办?那么,这整个设置必须重新进行吗?
    • @user13985 是的。在这种情况下,通常的做法是以某种方式打包代码并将其作为用户代码的一部分分发(将 Deep Leaning 的内容包含到项目中)或将其发布为一个包,然后使用pip 安装它。在后一种情况下,您不必发布 PyPI 包,pip 可以直接从 github 安装:pip install &lt;github_url&gt;
    • 这很乏味,没有人抱怨过吗?我的朋友在 Kaggle 比赛中输了,因为他使用了 PyCharm,而裁判没有!法官看不懂他的包裹。他应该写 import os 之类的。
    • @user13985 这样做是有充分理由的,我认为这种解决方案的好处大于不便。完整的解释不符合评论限制;基本上,这样做是为了与环境隔离并具有灵活的依赖关系管理。这就是为什么在 Python 中可以拥有像 Conda 这样的孤立环境,而 R 永远不会这样做
    猜你喜欢
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多