Problema no Bizzarre tentando fazer o Rpy2 2.1.9 funcionar com o R 2.12.1, usando o Python 2.6 no Windows xp - o Rpy não consegue encontrar o R.dll?

Eu estou tendo um problema real tentando fazer o Rpy2 funcionar bem com minha instalação do R. Tentei instalar o pacote rpy2 MSI pela primeira vez e isso não pareceu funcionar. Quando executei os testes recomendados, estava me dando um erro dizendo que não conseguia encontrar o R.dll, porque as novas instalações do R (pós 2.11) instalam as DLLs em uma pasta i386, na qual o rpy2 não pode encontrá-los porque está procurando na pasta bin em vez da pasta bin / i386.

Então tentei construir a instalação do zero usando as ferramentas de linha de comando (distutils) incluídas no python. Isso não funcionou, porque o setup.py alegou não conseguir encontrar o local R_home. Mas resolvi que editar uma variável de ambiente (PATH) pode mostrar a configuração do rpy2 onde encontrar a instalação do R. Depois, fiz algumas edições no ambiente, adicionando a variável "R_home" apontando para o diretório bin / i386 e fiz uma nova entrada na variável PATH, apontando para o mesmo local.

Infelizmente, quando ele encontrou o caminho R, recebi esse problema:

running build
running build_py
running build_ext
Traceback (most recent call last):
  File "setup.py", line 372, in <module>
    [os.path.join('doc', 'source', 'rpy2_logo.png')])]
  File "C:\Python26\lib\distutils\core.py", line 152, in setup
    dist.run_commands()
  File "C:\Python26\lib\distutils\dist.py", line 975, in run_commands
    self.run_command(cmd)
  File "C:\Python26\lib\distutils\dist.py", line 995, in run_command
    cmd_obj.run()
  File "C:\Python26\lib\distutils\command\build.py", line 134, in run
    self.run_command(cmd_name)
  File "C:\Python26\lib\distutils\cmd.py", line 333, in run_command
    self.distribution.run_command(command)
  File "C:\Python26\lib\distutils\dist.py", line 994, in run_command
    cmd_obj.ensure_finalized()
  File "C:\Python26\lib\distutils\cmd.py", line 117, in ensure_finalized
    self.finalize_options()
  File "setup.py", line 111, in finalize_options
    config += get_rconfig(r_home, about)
  File "setup.py", line 264, in get_rconfig
    rc = RConfig.from_string(rconfig)
  File "setup.py", line 252, in from_string
    + '\nin string\n' + string)
ValueError: Invalid substring in string

Então, voltei a tentar usar a instalação pré-fabricada, pensando que talvez as novas edições no ambiente pudessem funcionar, mas obtive esse problema aqui

 Traceback (most recent call last):
      File "<string>", line 245, in run_nodebug
      File "C:\Documents and Settings\User\Desktop\rpy2-2.1.9\rpy\tests.py", line 3, in <module>
        import rpy2.robjects.tests
      File "C:\Python26\lib\site-packages\rpy2\robjects\__init__.py", line 12, in <module>
        import rpy2.rinterface as rinterface
      File "C:\Python26\lib\site-packages\rpy2\rinterface\__init__.py", line 56, in <module>
        raise RuntimeError("Unable to locate R.dll within %s" % R_HOME)
    RuntimeError: Unable to locate R.dll within C:\Program Files\R\R-2.12.1\bin\i386

Isso é MUITO estranho, porque (como qualquer pessoa pode verificar por conta própria) o R instala o R.dll em "C: \ Arquivos de Programas \ R \ R-2.12.1 \ bin \ i386" e verifiquei e verifiquei lá, e eu apontei rpy2 para esse diretório no PATH padrão do Windows! Eu sei que o rpy2 está procurando no lugar certo, mas não consigo entender por que não está vendo o R.dll.

Então, por que o rpy2 não pode encontrá-lo? E alguém sabe como fazer o rpy2 trabalhar com o R 2.12? Talvez eu devesse tentar a versão mais recente do rpy2 2.2.0? No entanto, ainda está em desenvolvimento, e o 1,9 deve ser capaz de lidar com o R 2.12 de acordo com estelocal na rede Internet então eu não sei o que fazer ...

Obrigado a quem puder ajudar ...

[EDIT] Eu também tentei essas instruçõesaqui mas eles retornam o mesmo erro "não é possível encontrar a DLL" ... A menos que você altere a variável de ambiente "R_home" para apontar diretamente para o diretório c / program files / R / R 2.12 em vez de para o subdiretório i386.

Se apontar para o lugar certo, você recuperará esses erros. Isso parece um pouco mais promissor ... Mas ainda é muito ruim!

.......................F....................................F.FFF...F....................................................................F..................................
======================================================================
FAIL: testNewWithoutInit (rpy2.rinterface.tests.test_SexpVector.SexpVectorTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Python26\lib\site-packages\rpy2\rinterface\tests\test_SexpVector.py", line 43, in testNewWithoutInit
    self.assertTrue(False) # worked when tested, but calling endEmbeddedR causes trouble
AssertionError

======================================================================
FAIL: testCallErrorWhenEndedR (rpy2.rinterface.tests.test_EmbeddedR.EmbeddedRTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Python26\lib\site-packages\rpy2\rinterface\tests\test_EmbeddedR.py", line 122, in testCallErrorWhenEndedR
    self.assertTrue(False) # worked when tested, but calling endEmbeddedR causes trouble
AssertionError

======================================================================
FAIL: testReadConsoleWithError (rpy2.rinterface.tests.test_EmbeddedR.EmbeddedRTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Python26\lib\site-packages\rpy2\rinterface\tests\test_EmbeddedR.py", line 117, in testReadConsoleWithError
    self.assertTrue(errorstring.startswith('Traceback'))
AssertionError

======================================================================
FAIL: testSetReadConsole (rpy2.rinterface.tests.test_EmbeddedR.EmbeddedRTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Python26\lib\site-packages\rpy2\rinterface\tests\test_EmbeddedR.py", line 97, in testSetReadConsole
    self.assertEquals(yes.strip(), res[0])
AssertionError: 'yes' != ''

======================================================================
FAIL: testSetWriteConsole (rpy2.rinterface.tests.test_EmbeddedR.EmbeddedRTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Python26\lib\site-packages\rpy2\rinterface\tests\test_EmbeddedR.py", line 36, in testSetWriteConsole
    self.assertEquals('[1] "3"\n', str.join('', buf))
AssertionError: '[1] "3"\n' != ''

======================================================================
FAIL: testWriteConsoleWithError (rpy2.rinterface.tests.test_EmbeddedR.EmbeddedRTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Python26\lib\site-packages\rpy2\rinterface\tests\test_EmbeddedR.py", line 55, in testWriteConsoleWithError
    self.assertTrue(errorstring.startswith('Traceback'))
AssertionError

======================================================================
FAIL: testVectorUnicodeCharacter (rpy2.robjects.tests.testNumpyConversions.NumpyConversionsTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Python26\lib\site-packages\rpy2\robjects\tests\testNumpyConversions.py", line 54, in testVectorUnicodeCharacter
    self.assertTrue(False) # arrays of unicode characters causing segfault
AssertionError

----------------------------------------------------------------------
Ran 172 tests in 0.407s

FAILED (failures=7)
Exit code:  True

questionAnswers(3)

yourAnswerToTheQuestion