2011-11-17 26 views
7

He instalado mermelada y descargar algunos paquetes interesantes. Pero ahora, cuando comienzo Emacs consigo este error:ELPA/Mermelada informa "no se puede abrir archivo de carga" para ~/.emacs.d/elpa/archivos/pkg

Cannot open load file: c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/archives/-pkg 

Si uso --debug-init, me sale:

Debugger entered--Lisp error: (file-error "Cannot open load file" "c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/archives/-pkg") 
load("c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/archives/-pkg" nil t) 
(if (file-directory-p pkg-dir) (load (concat pkg-dir ... "-pkg") nil t)) 
(let ((pkg-dir ...)) (if (file-directory-p pkg-dir) (load ... nil t))) 

package-load-descriptor("c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/" "archives") 
(lambda (name) (package-load-descriptor dir name))("archives") 
mapc((lambda (name) (package-load-descriptor dir name)) ("anything-1.287" "anything- complete-1.86" "anything-config-0.4.1" "archive-contents" "archive-contents~" "archives" "auto-indent-mode-0.35" "builtin-packages" "builtin-packages~" "clojure-mode-1.7.1" "clojurescript-mode-0.5" "coffee-mode-0.3.0" "color-file-completion-1.0.1" "color-theme-6.6.1" "color-theme-eclipse-0.0.2" "color-theme-github-0.0.3" "color-theme-railscasts-0.0.2" "color-theme-twilight-0.1" "css-mode-1.0" "drag-stuff-0.0.3" "evernote-mode-0.41" "find-file-in-project-2.0" "flymake-coffee-0.4" "flymake-haml-0.5" "flymake-ruby-0.4" "flymake-shell-0.5" "haml-mode-3.0.14" "highlight-parentheses-1.0.1" "html-script-src-0.0.2" "inf-ruby-2.1" "js-comint-0.0.1" "js2-mode-20090814" "lua-mode-20100617" "package.el" "package.el~" "project-local-variables-0.2" "ruby-compilation-0.7" "ruby-electric-1.1" "ruby-mode-1.1" "slime-20100404" "tabbar-2.0.1" "tabbar-ruler-0.2" "yasnippet-0.6.1" "yasnippet-bundle-0.6.1" "zenburn-1.8")) 
(if (file-directory-p dir) (mapc (lambda ... ...) (directory-files dir nil "^[^.]"))) 
(lambda (dir) (if (file-directory-p dir) (mapc ... ...)))("c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/") 
mapc((lambda (dir) (if (file-directory-p dir) (mapc ... ...))) ("c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/" "/usr/share/emacs/site-lisp/elpa/")) 
package-load-all-descriptors() 
package-initialize() 
    (progn (package-initialize)) 
(if (load (expand-file-name "~/.emacs.d/elpa/package.el")) (progn (package-initialize))) 
(when (load (expand-file-name "~/.emacs.d/elpa/package.el")) (package-initialize)) 
eval-buffer(#<buffer *load*> nil "c:/Documents and Settings/Carlos/Datos de programa/.emacs" nil t) ; Reading at buffer position 9019 
load-with-code-conversion("c:/Documents and Settings/Carlos/Datos de programa/.emacs" "c:/Documents and Settings/Carlos/Datos de programa/.emacs" t t) 
load("~/.emacs" t t) 
#[nil "\205\264 

Este archivo no existe. Intenté buscar este problema con Google pero no encontré nada.

Respuesta

13

fácil. Por alguna razón, el package.el que está utilizando ahora es la versión "clásica" de http://tromey.com/elpa/package.el. Es tremendamente incompatible con las versiones más recientes de package.el. Cómo se las arregló para instalar los paquetes de Marmalade usando esa versión, no sé; debe haber tenido una versión diferente de package.el cuando instaló esos paquetes, tal vez porque estaba usando un Emacs más nuevo en ese momento.

La solución es utilizar la versión incluida con su Emacs (si es lo suficientemente nuevo como para tener uno), o para reemplazar su ~/.emacs.d/elpa/package.el con this version lugar, tal como se describe en el Marmalade instructions.

+0

me encuentro con los mismos problemas y esta solución no funciona para mí. cuando agrego el archivo package.el a '~/.emacs.d/elpa/package.el' y evalúo el buffer' .emacs' obtengo '(archivo-error" No se puede abrir el archivo de carga "" paquete ")' – PPPaul

+0

Hay 2 lugares posibles para su archivo de inicio de emacs. Uno es '~/.emacs', y el otro es' ~/.emacs.d/init.el'. Como está utilizando el primero, creo que el '~/.emacs.d' no está en su' load-path'. Intenta usar el último diseño en su lugar. En definitiva, la mejor solución es usar una versión reciente de Emacs para que 'package.el' esté incluido. Ha habido varias versiones estables adecuadas. – sanityinc

+0

borré mi archivo .emacs.las cosas funcionan mucho mejor ahora – PPPaul

0

creo que sólo puede desaparecer si crea manualmente un directorio en:

c:/Documents and Settings/Carlos/Datos de programa/.emacs.d/elpa/archives/-pkg 
+0

esto no funcionó para mí. (en mac 10.8.2) – PPPaul

1

Adición de un archivo, no directorio, utilizando touch ~/.emacs.d/elpa/archives/-pkg resuelto por mí.

5

me ha tropezado con esta cuestión al tratar de resolver un problema similar. En mi caso, lo que obliga package-initialize han resuelto el problema:

;; init.el 
(require 'package) 
(package-initialize) 

A pesar de que no he leído el código fuente de package.el, creo una especie de pereza en package.el se cousing el problema. A pesar de que esta es una vieja pregunta, quería responder, en caso de que alguien más necesite ayuda.

Para obtener más información sobre la puesta en marcha de Emacs, véase http://www.gnu.org/software/emacs/manual/html_node/elisp/Startup-Summary.html.

+0

Recientemente encontré exactamente este problema con la exportación del modo org, después de que tuve que hacer una instalación limpia de Ubuntu 12.10 sobre una actualización corrupta + fallida. Esto ha resuelto el problema por ahora con un mínimo alboroto –

+0

Lea también 'Ch ig (emacs) Instalación del paquete RET' a partir de" La razón por la que se carga el paquete automáticamente después de cargar el archivo init es que las opciones del usuario solo reciben sus valores personalizados después de cargar el init archivo, incluidas las opciones de usuario que afectan el sistema de embalaje ". – phils

+0

Puede usar 'after-init-hook' para evaluar el código personalizado después de que se haya completado la inicialización normal del paquete. e.g .: '(add-hook 'after-init-hook' my-after-init-hook) (defun my-after-init-hook() ...)' – phils

0

En mi caso he tenido que añadir esta directiva para decirle a Emacs donde se puede encontrar los archivos necesarios:

En primer lugar esta línea

(add-to-list 'load-path "~/.emacs.d/") 

Y el paquete necesario ...

(require 'package) 
(add-to-list 'package-archives 
      '("marmalade" . "http://marmalade-repo.org/packages/") t) 
(package-initialize) 

(when (not package-archive-contents) 
    (package-refresh-contents)) 
Cuestiones relacionadas