Doom-emacs: [BUG] Ob-async não funciona.

Criado em 4 nov. 2019  ·  25Comentários  ·  Fonte: hlissner/doom-emacs

a saída do bug
error in process sentinel: Cannot open load file: No such file or directory, org-version.el
ver problemas
se você limpar rm -rf ~/.emacs.d/.local/straight/build/org-plus-contrib/*.elc . está funcionando.
Mas, temos um novo problema, o emacs não consegue encontrar a versão org. semelhantes como este questões .

:lang org bug resolved

Comentários muito úteis

Agradável! Funciona! 💯

Todos 25 comentários

Temos esse hack em vigor para evitar esse problema. Eu não posso reproduzi-lo. Inclua seu M-x doom/info e as etapas para reproduzi-lo.

Além disso, ob-async está

Além disso, ob-async está

Eu sabia, Ob-async incluído no recurso org. Acabei de adicionar (use-package! Ob-async) no meu arquivo de configuração. se você não configurar isso. o ob async não funciona.

Temos esse hack em vigor para evitar esse problema. Eu não posso reproduzi-lo. Inclua seu M-x doom/info e as etapas para reproduzi-lo.

emacs   version    26.3
        features   NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS
        build      Sep 02, 2019
        buildopts  (--with-ns '--enable-locallisppath=/Library/Application Support/Emacs/${version}/site-lisp:/Library/Application Support/Emacs/site-lisp' --with-modules)
        windowsys  ns
        daemonp    server-running
doom    version    2.0.9
        build      HEAD -> develop, origin/develop, origin/HEAD 04a2cb94c 2019-11-02 23:34:34 -0800
system  type       darwin
        config     x86_64-apple-darwin18.2.0
        shell      /bin/zsh
        uname      Darwin 19.0.0 Darwin Kernel Version 19.0.0: Thu Oct 17 16:17:15 PDT 2019; root:xnu-6153.41.3~29/RELEASE_X86_64 x86_64
        path       (~/.poetry/bin/ /usr/local/opt/texinfo/bin/ /usr/local/opt/nss/bin/ ~/anaconda3/bin/ /usr/local/opt/imagemagick@6/bin/ ~/.cargo/bin/ /usr/local/bin/ /usr/local/opt/texinfo/bin/ /usr/bin/ /bin/ /usr/sbin/ /sbin/ /Applications/VMware Fusion.app/Contents/Public/ /Library/TeX/texbin/ /usr/local/MacGPG2/bin/ /opt/X11/bin/ /Applications/Wireshark.app/Contents/MacOS/ /usr/local/opt/ ~/go/bin/ /Applications/Emacs.app/Contents/MacOS/libexec/)
config  envfile    envvar-file
        elc-files  0
        modules    (:input chinese :completion company helm ivy :ui doom doom-dashboard doom-quit hl-todo modeline nav-flash ophints (popup +all +defaults) treemacs vc-gutter vi-tilde-fringe window-select workspaces :editor file-templates fold rotate-text snippets :emacs dired electric ibuffer vc :tools (eval +overlay) flycheck (lookup +docsets) lsp magit :lang cc common-lisp data emacs-lisp ess go (haskell +intero) julia latex markdown nix (org +dragndrop +hugo +ipython +pandoc +present) python sh :app (rss +org) :config (default +smartparens) :private spacemacs-default)
        packages   (n/a)
        elpa       (n/a)

isso o ajudará no teste fácil: Org-src:

+ BEGIN_SRC sh: assíncrono

dormir 4s && echo 'pronto'

+ END_SRC

+ RESULTADOS:

: feito

certifique-se de que os resultados tenham uma ID de tarefa assíncrona de saída : 569af356b1428415f897587c8a351308
se você tiver problemas que não encontrem org-version.el
tente executar isto:

+ BEGIN_SRC sh

rm -rf ~ / .emacs.d / .local / straight / build / org-plus-contrib / *. elc

+ END_SRC

Ah, posso reproduzi-lo. Experimente e veja se resolve o problema:

(add-hook! 'ob-async-pre-execute-src-block-hook
           (load (expand-file-name "init.el" user-emacs-directory)))

obrigado, resolveu o problema. mas se o usuário colocar a lógica de inicialização em ob-async-pre-execute-src-block-hook, que é executado antes da execução de cada bloco src. como Julia:
(add-hook 'ob-async-pre-execute-src-block-hook '(lambda () (setq inferior-julia-program-name "/nix/store/qzpr1kwkhnz55mdlq8skc5sqrc6l2j2b-system-path/bin/julia") ))

adicionou sua configuração
`ob-async.el.

Value ((lambda nil (setq inferior-julia-program-name "/nix/store/qzpr1kwkhnz55mdlq8skc5sqrc6l2j2b-system-path/bin/julia")) (lambda (&rest _) (load (expand-file-name "init.el" user-emacs-directory))))

novo problema.
error in process sentinel: async-handle-result: Cannot open load file: No such file or directory, ob-julia error in process sentinel: Cannot open load file: No such file or directory, ob-julia
Então, como escrever uma configuração que pode ser carregada de ambos sem erros.

E se:

(defadvice! +org-init-doom-during-async-executation-a (orig-fn &rest args)
    :around #'ob-async-org-babel-execute-src-block
    (let ((ob-async-pre-execute-src-block-hook
           (cons (lambda () (load (expand-file-name "init.el" user-emacs-directory)))
                 ob-async-pre-execute-src-block-hook)))
      (apply orig-fn args)))

Isso deve garantir que nosso gancho esteja sempre em primeiro lugar.

(defadvice! +org-init-doom-during-async-executation-a (orig-fn &rest args)
    :around #'ob-async-org-babel-execute-src-block
    (let ((ob-async-pre-execute-src-block-hook
           (cons (lambda () (load (expand-file-name "init.el" user-emacs-directory)))
                 ob-async-pre-execute-src-block-hook)))
      (apply orig-fn args)))

error in process sentinel: async-handle-result: Cannot open load file: No such file or directory, org error in process sentinel: Cannot open load file: No such file or directory, org

informações de depuração:


Depurador inserido - erro Lisp: (arquivo ausente "Não é possível abrir o arquivo de carregamento" "Não existe esse arquivo ou diretório" "org")
sinal (arquivo ausente ("Não é possível abrir arquivo de carregamento" "Não existe esse arquivo ou diretório" "org"))
async-handle-result ((lambda (resultado) (with-current-buffer #(let ((diretório padrão "/ home / gtrun / project / my-code / my-julia /")) (save-excursão (cond ((membro "nenhum" ...) (mensagem "resultado silenciado")) ((membro "silencioso" ...) (mensagem ...)) (t (goto-char #) (deixar ... ... ... ...))) (run-hooks (quote org-babel-after-execute-hook)))))) (sinal assíncrono (arquivo ausente "Não é possível abrir carregar o arquivo "" Não existe tal arquivo ou diretório "" org ")) #)
async-when-done (#"terminado")

Esses erros não parecem relacionados, mas tente isto:

(defadvice! +org-init-doom-during-async-executation-a (orig-fn &rest args)
    :around #'ob-async-org-babel-execute-src-block
    (let ((ob-async-pre-execute-src-block-hook
           ;; Ensure our hook is always first
           (cons `(lambda ()
                    (load ,doom-autoload-file)
                    (load ,doom-package-autoload-file))
                 ob-async-pre-execute-src-block-hook)))
      (apply orig-fn args)))

Esses erros não parecem relacionados, mas tente isto:

(defadvice! +org-init-doom-during-async-executation-a (orig-fn &rest args)
    :around #'ob-async-org-babel-execute-src-block
    (let ((ob-async-pre-execute-src-block-hook
           ;; Ensure our hook is always first
           (cons `(lambda ()
                    (load ,doom-autoload-file)
                    (load ,doom-package-autoload-file))
                 ob-async-pre-execute-src-block-hook)))
      (apply orig-fn args)))

error in process sentinel: async-handle-result: Symbol’s function definition is void: after! error in process sentinel: Symbol’s function definition is void: after!

Não consigo reproduzir esses novos erros, mas tente isto:

(defadvice! +org-init-doom-during-async-executation-a (orig-fn &rest args)
    :around #'ob-async-org-babel-execute-src-block
    (let ((ob-async-pre-execute-src-block-hook
           ;; Ensure our hook is always first
           (cons `(lambda ()
                    (load ,(expand-file-name "init.el" doom-emacs-dir)))
                 ob-async-pre-execute-src-block-hook)))
      (apply orig-fn args)))

Se possível, você pode entrar em nossa discórdia ? Eu não quero spam aqui.

Este problema foi resolvido? Eu tenho a versão mais recente do doom como 19/11/2019 20:30 PDT. Mas eu ainda tenho o arquivo org-version.el ausente.

Este problema foi resolvido? Eu tenho a versão mais recente do doom como 19/11/2019 20:30 PDT. Mas eu ainda tenho o arquivo org-version.el ausente.

~ Claro, nenhum problema aparece na minha configuração com a última versão do doom. Você só precisa de uma configuração para sua destruição. para assíncrono ~
~ (usar-pacote! 'ob-async) ~
Não está mais na minha configuração
testado em darwin e nixos

emacs   version    26.3
        features   NOTIFY ACL GNUTLS LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS MODULES THREADS
        build      Sep 02, 2019
        buildopts  (--with-ns '--enable-locallisppath=/Library/Application Support/Emacs/${version}/site-lisp:/Library/Application Support/Emacs/site-lisp' --with-modules)
        windowsys  ns
        daemonp    server-running
doom    version    2.0.9
        build      HEAD -> develop, origin/develop, origin/HEAD ff179b080 2019-11-18 18:13:59 -0800
system  type       darwin
        config     x86_64-apple-darwin18.2.0
        shell      /bin/zsh
        uname      Darwin 19.0.0 Darwin Kernel Version 19.0.0: Thu Oct 17 16:17:15 PDT 2019; root:xnu-6153.41.3~29/RELEASE_X86_64 x86_64
        path       (~/.poetry/bin/ ~/.cargo/bin/ /usr/local/bin/ /usr/bin/ /bin/ /usr/sbin/ /sbin/ /Applications/VMware Fusion.app/Contents/Public/ /Library/TeX/texbin/ /usr/local/MacGPG2/bin/ /usr/local/share/dotnet/ /opt/X11/bin/ ~/.dotnet/tools/ /Applications/Wireshark.app/Contents/MacOS/ ~/.poetry/bin/ /usr/local/opt/texinfo/bin/ /usr/local/opt/nss/bin/ ~/anaconda3/bin/ /usr/local/opt/imagemagick@6/bin/ ~/.cargo/bin/ /usr/local/opt/ ~/go/bin/ /Applications/Emacs.app/Contents/MacOS/bin-x86_64-10_14/ /Applications/Emacs.app/Contents/MacOS/libexec-x86_64-10_14/ /Applications/Emacs.app/Contents/MacOS/libexec/)
config  envfile    envvar-file
        elc-files  0
        modules    (:input chinese :completion company helm ivy :ui doom doom-dashboard doom-quit hl-todo indent-guides modeline nav-flash ophints (popup +all +defaults) treemacs vc-gutter vi-tilde-fringe window-select workspaces :editor file-templates fold rotate-text snippets :emacs dired electric ibuffer vc :term eshell :tools (eval +overlay) flycheck (lookup +docsets) lsp magit pass upload :lang cc common-lisp data emacs-lisp ess go (haskell +intero) julia latex markdown nix (org +dragndrop +hugo +ipython +pandoc +present) python scheme sh :app (rss +org) :config (default +smartparens) :private spacemacs-default my-org my-code)
        packages   (n/a)
        elpa       (n/a)

Não consigo mais reproduzir o problema. @ztlevi Experimente doom build .

(use-pacote! 'ob-async)

Não faça isso. É desnecessário e carrega todo o org. ob-async será carregado automaticamente se seu bloco src tiver uma propriedade :async não nula.

Eu ainda tenho o erro.

error in process sentinel: async-handle-result: Cannot open load file: No such file or directory, org-version.el
error in process sentinel: Cannot open load file: No such file or directory, org-version.el

Estou usando org-wild-notifier. Você pode experimentar este pacote e habilitá-lo M-x org-wild-notifier-mode

(package! org-wild-notifier)
(use-package! org-wild-notifier
  :defer t
  :init
  (add-hook 'doom-post-init-hook #'org-wild-notifier-mode t)
  :config
  (setq org-wild-notifier-alert-time 15
        alert-default-style (if IS-MAC 'osx-notifier 'libnotify)))

@ztlevi

  1. Adicionado (package! org-wild-notifier) a ~/.doom.d/packages.el
  2. Adicionou seu bloco use-package! a ~/.doom.d/config.el
  3. doom refresh
  4. Reinicie o Emacs
  5. Abriu um arquivo org e executou

    #+BEGIN_SRC sh :async t
    sleep 2
    echo 25
    #+END_SRC
    

Correu sem problemas. Executei várias vezes, até.

Atualmente em 24efd5b90 com Emacs 26.3.

Nota lateral: doom-post-init-hook não existe mais. Ele foi substituído por doom-after-init-modules-hook algum tempo atrás, então org-wild-notifier nem mesmo está carregando.

Que tal você acioná-lo manualmente? Você obteve o erro?

Nota lateral: doom-post-init-hook não existe mais. Ele foi substituído por doom-after-init-modules-hook algum tempo atrás, então org-wild-notifier nem mesmo está carregando.

este problema não é sobre org-babel-async. Tentei baixar o org-wild-notifier. também obteve o mesmo relatório de erro.

Agh. Eu vejo isso. É a maneira como org-wild-notifier copia seus arquivos de agenda da organização. Ele usa async da mesma forma que o ob-async, exceto que ao contrário do ob-async, ele não nos fornece uma maneira de injetar o estado do Doom antes de ser executado.

Isso não é trivial para consertar do lado de Doom. Em vez disso, sugiro usar org-alert (ou org-notificar, incluído com org-plus-contrib).

Emm, org-alert realmente não funciona. Enquanto org-notify faz uma notificação pop, mas repete a notificação a cada dois minutos, o que é muito irritante.

É possível consertar de org-wild-notifier-mode ? Se sim, gostaria de abrir um problema

Em 30f72da, empreguei uma nova solução para isso e para o problema ob-async, que deve resolver seu problema com o modo org-wild-notifier. Avise-me se não for o caso.

(Você precisará doom build após doom upgrade para que isso funcione totalmente, a menos que o pacote org seja atualizado)

Agradável! Funciona! 💯

Esta página foi útil?
0 / 5 - 0 avaliações