py-compile missing argument to --destdir

Asked by ceguo

Hi,

I run esys-particle 2.2 in Ubuntu 10.04 and never encounter installation problems. But now I copy the source code to a Ubuntu 12.04 desktop and I successfully compiled the code using "make". When I run "sudo make install" I encountered this error:

py-compile: Missing argument to --destdir.

I found that esysparticle (the executable file) is generated but the library files are not.

Ning

Question information

Language:
English Edit question
Status:
Solved
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Solved by:
ceguo
Solved:
Last query:
Last reply:
Revision history for this message
Vince Boros (v-boros) said :
#1

Hello Ning:

I have not seen this error before. py-compile is a file generated by the Autotools. When you ran "sh autogen.sh", which generates most of the files used for building the code, were there any warnings? What did you use for your "configure" command line? And finally, can you provide some context to the "make install" error you encountered, such as what directory the error occurred in (several lines of output before the error should be enough)?

Regards,

Vince

Revision history for this message
ceguo (hhh-guo) said :
#2

Thanks Vince,

When I run ./autogen.sh actually I encountered an error: Not a branch. The code is from my Ubuntu 10.04 desktop and I made several modifications, e.g. add new interaction models. With this error, I can successfully install in the Ubuntu 10.04 desktop.

I use "./configure CC=mpicc CXX=mpic++"

The error is something like:

test -z "/usr/local/lib/python2.7/dist-packages/esys/lsm/util" || /bin/mkdir -p "/usr/local/lib/python2.7/dist-packages/esys/lsm/util"
 /usr/bin/install -c -m 644 __init__.py FileUtil.py OptParse.py pathSearcher.py process.py '/usr/local/lib/python2.7/dist-packages/esys/lsm/util'
../../../../py-compile: Missing argument to --destdir.
make[5]: *** [install-dist_lsmutilPYTHON] Error 1
make[5]: Leaving directory `/home/usrname/Downloads/ESyS-Particle-2.2/Python/esys/lsm/util'
make[4]: *** [install-am] Error 2
make[4]: Leaving directory `/home/usrname/Downloads/ESyS-Particle-2.2/Python/esys/lsm/util'
make[3]: *** [install-recursive] Error 1
make[3]: Leaving directory `/home/usrname/Downloads/ESyS-Particle-2.2/Python/esys/lsm'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory `/home/usrname/Downloads/ESyS-Particle-2.2/Python/esys'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/home/usrname/Downloads/ESyS-Particle-2.2/Python'
make: *** [install-recursive] Error 1

Ning

Revision history for this message
Vince Boros (v-boros) said :
#3

Hi Ning:

When you copied your version of ESyS-Particle 2.2 from Ubuntu 10.04 to 12.04, did you copy only files that are listed in the Bazaar repository, or were there also build files from a previous build?

Also, run "bzr diff" on your source tree and send me the relevant output. I want to see, in particular, differences between build system files rather than changes to models.

Vince

Revision history for this message
ceguo (hhh-guo) said :
#4

Hi Vince,

Before I copy I run 'sudo make uninstall' and 'make distclean', so I guess I already removed build files, right?

Now I cannot run bzr diff, it returns the same error as './autogen.sh':

bzr: ERROR: Not a branch.

How to solve this problem first, i.e. to get ./autogen.sh workable?
Ning

Revision history for this message
Vince Boros (v-boros) said :
#5

Hi Ning:

Yes, "make uninstall" and "make distclean" are sufficient.

I think now that the "Not a branch" error from autogen.sh comes from the new code in that file trying to invoke "bzr". It is not a concern at this stage. If this was the only error, then the previous Autotools commands in that file would have worked. But it is clear that the copy of the ESyS-Particle code on Ubuntu 12.04 no longer has Bazaar information for updating the source. To obtain a "diff", try branching a fresh copy of the trunk (see the FAQs for details) into an empty directory and then run the GNU "diff" with the recursive option on this new copy and your modified copy.

Vince

Revision history for this message
ceguo (hhh-guo) said :
#6

Hi Vince,

I followed your instruction doing a diff between a branch version with my own. And after I deleted the files only in my modified folder (the py-compile file causes the trouble I guess), I successfully installed esys. Thanks.

Ning

Revision history for this message
Vince Boros (v-boros) said :
#7

Hi Ning.

I would expect that running autogen.sh would overwrite as necessary any files left over after "make distclean", though in the past I have done as you now have and removed leftovers such as py-compile, ltmain.sh, libltdl/, etc., mainly to assuage any doubts I had concerning clean builds; but in your case it appears genuinely to have fixed your build problem. Well done.

Vince