【发布时间】:2021-10-30 11:40:31
【问题描述】:
我在蜘蛛 (anaconda) 中编写了自己的 mail.py 模块。我想通过'import mail'将这个py文件导入其他python(蜘蛛)文件中
我在互联网上搜索并没有找到明确的解决方案。
【问题讨论】:
我在蜘蛛 (anaconda) 中编写了自己的 mail.py 模块。我想通过'import mail'将这个py文件导入其他python(蜘蛛)文件中
我在互联网上搜索并没有找到明确的解决方案。
【问题讨论】:
要导入任何 python 脚本,它应该存在于 PYTHONPATH 中。您可以使用以下代码进行检查:
import sys
print sys.path
要导入您的 Python 脚本:
例如,如果脚本位于'/location/to/file/script.py':
import sys
sys.path.append('/location/to/file/')
import script
【讨论】:
import mail 即可。
我遇到了同样的问题,我的文件在同一个文件夹中,但在导入“to_be_imported_file.py”时出现错误。
在将它导入另一个文件之前,我必须单独运行“to_be_imported_file.py”。
我希望它也对你有用。
【讨论】:
搜索了这个问题的答案。要将.py 文件用作主文件夹中的导入模块,您需要将两个文件放在一个文件夹中或将路径附加到该位置。如果您将两个文件存储在一个文件夹中,请检查 spyder 界面右上角的工作目录。由于错误的工作目录,您将看到ModuleNotFoundError。
【讨论】:
有很多选择,例如
【讨论】:
我做了一个稍微不同的解决方法,它不太复杂。当我启动我的 anaconda 终端时,它出现在 C 提示符下。在启动 python 之前,我只是在开始窗口中做了一个 cd d:\mypython\lib 。一旦我这样做了,我就可以简单地使用“import MyClass as my”导入我自己放入该库的类,然后我就开始运行了。有趣的是,我在业余时间进行了 2 天的互联网搜索,也找不到答案,直到我问了一个朋友。
cd d:\mypython\lib
python
>>> import MyClass as my
>>> my1=my.MyClass()
>>> my1.doSomething()
在我的 anaconda / windows 10 环境 python 3.6.6 上为我工作。
【讨论】:
从另一个文件调用任何函数时,应注意不要在函数内部导入任何库
【讨论】:
我认为最简单的解决方案是将包含 Python 文件的目录放入计算机上的 Anaconda 站点包文件夹中。我写了一个article 概述了整个过程,但简而言之,您需要创建一个包含python 脚本和__init__.py 文件的文件夹。然后将该文件夹放在 Anaconda 目录中的 site-packages 文件夹中。
在 Windows 上,site-packages 目录通常位于:C:\Users\[your_username]\Anaconda3\Lib\site-packages\
在 Mac 上,site-packages 目录通常位于:
Users/[your_username]/opt/anaconda3/lib/[python3.8]/site-packages/
注意,在 Mac 上,Python 版本很重要。您需要查找与 Anaconda 使用的 (base) Python 版本对应的目录。此外,我在上述文件路径中的方括号内放置的任何内容都需要根据您的特定机器和 Python 版本进行更改。
文件结构应如下所示:
~/
|__site-packages/
|__your_folder/
script.py
__init__.py
将包含 script.py 和 __init__.py 文件的文件夹移至 Anaconda 的 site-packages 子目录后,您将能够从您在计算机上运行的任何脚本导入它.
【讨论】: