ComparativeGenomicsToolkit / cactus

Official home of genome aligner based upon notion of Cactus graphs
Other
524 stars 111 forks source link

Installation issues #130

Closed ak-watson closed 4 years ago

ak-watson commented 4 years ago

Hi,

I have been attempting to install cactus on Ubuntu 18.04.3 LTS with python 2.7.15+ and ran in to some issues trying to run the test job with default settings. I will list my most recent error, as well as previous changes I have made incase they have caused some unexpected behaviour.

My most recent error is that docker cannot find an image, as below:

Unable to find image 'quay.io/comparative-genomics-toolkit/cactus:a10d1692efc05c0510415cbb8006a66797ab5174' locally WARNING:toil.leader:2/G/job_mYlUm Error: No such object: a6aa3ca5-7134-4917-925f-1bc5fb429553 WARNING:toil.leader:2/G/job_mYlUm Error: No such object: a6aa3ca5-7134-4917-925f-1bc5fb429553 WARNING:toil.leader:2/G/job_mYlUm docker: Error response from daemon: manifest for quay.io/comparative-genomics-toolkit/cactus:a10d1692efc05c0510415cbb8006a66797ab5174 not found.

Previous steps are as listed below:

1) Several of the python scripts pass "encoding = 'unicode' " to ElementTree for xml parsing and this throws up an error.

File "/home/user/Programs/cactus_env2/bin/cactus", line 8, in <module> sys.exit(main()) File "/home/user/Programs/cactus_env2/local/lib/python2.7/site-packages/cactus/progressive/cactus_progressive.py", line 474, in main runCactusProgressive(options) File "/home/user/Programs/cactus_env2/local/lib/python2.7/site-packages/cactus/progressive/cactus_progressive.py", line 489, in runCactusProgressive projWrapper.writeXml() File "/home/user/Programs/cactus_env2/local/lib/python2.7/site-packages/cactus/progressive/projectWrapper.py", line 69, in writeXml self.configWrapper.writeXML(configPath) File "/home/user/Programs/cactus_env2/local/lib/python2.7/site-packages/cactus/shared/configWrapper.py", line 35, in writeXML xmlString = ET.tostring(self.xmlRoot, encoding='unicode') File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1126, in tostring ElementTree(element).write(file, encoding, method=method) File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 817, in write self._root, encoding, default_namespace File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 884, in _namespaces add_qname(tag) File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 868, in add_qname qnames[qname] = encode(qname) File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 843, in encode return text.encode(encoding)

Attempted workaround: I have tested switching all instances to "encoding='utf-8' and deleting all encoding flags. Both got me past the error but I'm not sure if they will result in unexpected behavoir later down the line.

2) Another later 'encoding' issue, this time in cactus/shared/common.py

TypeError: __init__() got an unexpected keyword argument 'encoding'

This relates to the line: process = subprocess.Popen(call, shell=shell, encoding="ascii",

Attempted workaround: Remove the 'encoding="ascii" option.

3) Calling an object from the subprocess module that does not exist in my build. As far as I can tell, it is python3 specific unless you use the backported module?

except subprocess.TimeoutExpired: AttributeError: 'module' object has no attribute 'TimeoutExpired

Attempted workaround: Installing subprocess32, a version of subprocess backported from python3 that includes TimeoutExpired, and changing instances of "import subprocess" to "import subprocess32 as subprocess".

ak-watson commented 4 years ago

I just spotted in another post that you are in the process of updating to python3. This might be where I have hit some of my issues (the encoding one is a common one).

I'll hang on for now until there is a new stable version.

diekhans commented 4 years ago

Due to various problems with the PY3 port, we have reverted master until these are fixed.

Please clean everything out and try again.