我想以工作目录作为项目主目录加载功能/模块,但是功能文件存储在子目录级别以下,因此是正常的
function copyToInput(elementId) {
var getText = document.getElementById(elementId).innerText;
var chatHudInput = document.getElementsByClassName('hud-chat-input')[0];
chatHudInput.value = getText;
}
不起作用。
这是项目目录设置的样子:
<div class="hud-chat-message" id="message" onclick="copyToInput('message');"> SOME TEXT HERE </div>
<hr>
<div class="hud-chat-message" id="message2" onclick="copyToInput('message2');"> SOME MORE TEXT HERE </div>
<hr>
<div class="hud-chat-message" id="message1" onclick="copyToInput('message1');"> EVEN MORE TEXT HERE </div>
<hr>
<input type="text" name="message" class="hud-chat-input" placeholder="Enter your chat message..." maxlength="140">
所以我试图通过导入功能
from function_file import function_name
那是行不通的。我知道这是因为其他子目录不是模块,但是我想问一下周围是否还有其他地方吗?
-编辑 我正在使用code / scripts / script1.py中的.py文件工作,但工作目录为project_main_directory /
答案 0 :(得分:1)
向每个子目录添加一个空文件__init__.py
,使其成为模块。
.
├── code
│ ├── __init__.py
│ └── scripts
│ ├── __init__.py
│ └── script1.py
└── main.py
然后,如果您在hello
中有一个名为code/scripts/script1.py
的函数,则可以通过以下方式导入该函数:
from code.scripts.script1 import hello
hello("yo")
答案 1 :(得分:0)
如果当前目录为project_main_directory,则可以使用:
from code.scripts.functions.function1 import function1
脚本目录无关紧要。仅您当前的目录很重要(请参阅IDE的顶部)
答案 2 :(得分:0)
要从另一个python文件导入函数/模块,您必须执行以下操作-
from code.scripts.functions.function1 import function1
上面我们是从 function1.py 文件中加载 function1 ,该文件存储在 functions 目录中,该目录存储在 scripts 目录,最后在 code 目录中。
编辑-就是说,您要从script1.py中的function1.py加载函数吗?在这种情况下,from .functions.function1 import function
应该可以工作。
答案 3 :(得分:0)
首先,从Python 3.3开始,不再需要__init__.py
来将目录定义为可导入的Python包。其次,您可以使用相对导入,这将在您需要进行重构时为您提供帮助:
from code.scripts.script1 import function_name
我记得我前一段时间也遇到同样的错误,请查看this question及其答案以获取更多信息,因此希望可以解决您的问题。