Python 将.py脚本中的变量调用到批处理中

Python 将.py脚本中的变量调用到批处理中,python,batch-file,pycharm,Python,Batch File,Pycharm,我有一系列的.py文件,我正在使用.bat自动化整个过程。在一些.py文件中,我调用了另一个.py文件中的变量。我这样做是为了允许自己在运行新进程时只更改一个.py。我已将.bat设置为与.py文件一起正常运行,但我不知道如何合并variables.py文件 例如: Python1.py import os import somefolder.variables as variables path = 'C:/pictures/' file = variables.file for img

我有一系列的.py文件,我正在使用.bat自动化整个过程。在一些.py文件中,我调用了另一个.py文件中的变量。我这样做是为了允许自己在运行新进程时只更改一个.py。我已将.bat设置为与.py文件一起正常运行,但我不知道如何合并variables.py文件

例如:

Python1.py

import os
import somefolder.variables as variables

path = 'C:/pictures/'
file = variables.file

for img in os.listdir(path + variables.file):
    print(img)
变量.py

file = item1.img
Batch.bat

call "C:/Users/name/anaconda3/Scripts/activate.bat" "C:/Users/name/anaconda3/envs/environment"
call "C:/Users/name/anaconda3/envs/environment/python.exe" "D:/Scripts/python1.py"
...

在运行类似于此的操作之后。我收到错误:
没有名为“somefolder”的模块
。我读过一些关于使用
echo
命令或使用
set
的其他帖子,但这似乎是在批处理中设置变量,而不是从另一个.py文件调用它。我是批处理文件的新手,因此如果您有任何帮助,我将不胜感激。

将文件内容读入变量:

for/f“delims=“%%x in(version.txt)do set Build=%%x


set/p Build=正如上面评论中提到的@Rashid'Lee'Ibrahim,最好使用
\uuuu intit\uuuuuu.py
。虽然为了让代码运行,我将module/.py文件的位置设置为系统路径

Python1.py原版

import os
import somefolder.variables as variables

path = 'C:/pictures/'
file = variables.file

for img in os.listdir(path + variables.file):
    print(img)
Python1.py已编辑

import os
sys.path.append('D:/Scripts/')
import variables

path = 'C:/pictures/'
file = variables.file

for img in os.listdir(path + variables.file):
    print(img)

这实际上与如何使用bat文件无关。这是python中的路径问题。您使用的是相对导入语句,但在执行此操作时,您不在python文件的文件夹中,因此它找不到要导入的文件。好的,我想我理解了。为什么当我单独运行.py脚本时它会工作?当您单独运行脚本时,很可能是从同一目录运行它。那么相对路径在这一点上是正确的。那么我需要将python1.py文件添加到我的环境中吗?不确定,这可能会起作用,但我不会这样做。首先,这是一个混乱的解决方案,在大型项目上并不真正可持续。其次,它也进入了不需要触及的系统变量。您需要查看
和包文件。这就是解决这个问题的python方法。这是从.txt读取变量吗?如果我是从一个.py中提取呢?我可以更改文件类型吗?