python 3.x用链接脚本ubuntu执行脚本

安德烈斯·安吉尔(Andres Angel)

我已经创建了某些文件夹和文件结构,以使我的项目更易于维护并且随着时间的推移变得灵活。

我以这种形式存储了这些文件夹和python脚本:

/home/ubuntu/main_folder :在此文件夹中,我具有以下架构:

     |-main_foler
     |
     |-module1
     |---script.py
     |
     |configetl
     |---config.py
     |
     |process.sh

我期待使用可执行脚本执行存储在module1名称下的文件夹中script.py的脚本process.sh

     #!/bin/sh
     cd /home/ubuntu/main_folder &&

     python3 module1/script.py

执行脚本时出现问题,因为使用的是来自存储在名为的文件夹中的脚本的大量方法configetl

        error: File "module1/script.py", line 4, in <module>
          from configetl.config import *
        ImportError: No module named 'configetl'

如何正确设置脚本sh以避免这种情况,并在cron中自动安排此脚本?

非常感谢。

哈拉兰博夫

script.py可能无法访问config.py,因为该目录configetl不在script.py的PYTHONPATH中。

您可以通过脚本调用时sys.path在您列表中打印列表来进行测试script.pyprocess.sh

# Inside your script.py before calling any config functions
import sys
print(sys.path)

输出应类似于以下内容:

['', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/lib/python3.6/site-packages']

要将configetl目录包括到您的PYTHONPATH中,并使目录对可见script.py,您必须将路径追加configetlsys.path列表中:

# Inside your script.py before calling any config functions
import sys
sys.path.append('../')

这会将整个上一级目录附加到您的PYTHONPATH。

如果您只想将configetl目录添加到PYTHONPATH,则可以执行以下操作:

# Inside your script.py before calling any config functions
import sys
sys.path.append('../configetl')

这将需要对导入config.py模块的方式进行一些小的更改您将必须直接导入它,而不使用其父目录名称,例如

from config import *

PS使用星号从python模块导入所有内容被认为是不好的做法。您应该导入整个模块import config或列出要从该模块导入的对象,例如from config import function_one, function_two

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 python 3 执行脚本的批处理脚本(如果可用)否则 python 2

来自分类Dev

从i3 config执行脚本

来自分类Dev

在Selenium Python中执行脚本

来自分类Dev

链接python安装脚本执行

来自分类Dev

替换python脚本中的字符串并执行脚本

来自分类Dev

用Cron执行Python脚本

来自分类Dev

Python 2 到 Python 3:脚本无法正确执行

来自分类Dev

Python:无错误执行脚本,不执行任何操作

来自分类Dev

从ubuntu shell执行python脚本

来自分类Dev

使用python 3创建脚本以捕获网页上的链接

来自分类Dev

为什么我的python脚本执行了3次?

来自分类Dev

如何使 python 3 脚本从 Windows 10 上的 .bat 文件执行?

来自分类Dev

使用crontab执行脚本时登录python

来自分类Dev

在`python manage.py shell`启动后执行脚本

来自分类Dev

Firefox控制台中的Selenium Python执行脚本

来自分类Dev

使用crontab执行脚本时登录python

来自分类Dev

如何阻止Python在导入时执行脚本?

来自分类Dev

我无法让 crontab 运行,sudo python3 运行脚本有问题吗?

来自分类Dev

Ubuntu的crontab中的Python3脚本

来自分类Dev

python 从带参数的脚本运行脚本

来自分类Dev

执行Jython脚本的Python脚本

来自分类Dev

Python可执行文件如何解析和执行脚本?

来自分类Dev

Python 2.x和Python 3.x的脚本不兼容

来自分类Dev

Grails 3中的运行脚本替代

来自分类Dev

如何运行Python 3脚本?

来自分类Dev

在Sublime Text 3中运行python脚本

来自分类Dev

Python ValueCan3模块/脚本

来自分类Dev

将 Python3 脚本作为 CLI

来自分类Dev

ev3dev python 电源脚本