wimleers / fileconveyor

File Conveyor is a daemon written in Python to detect, process and sync files. In particular, it's designed to sync files to CDNs. Amazon S3 and Rackspace Cloud Files, as well as any Origin Pull or (S)FTP Push CDN, are supported. Originally written for my bachelor thesis at Hasselt University in Belgium.
https://wimleers.com/fileconveyor
The Unlicense
340 stars 95 forks source link

The transporter module X could not be found... #116

Closed merzikain closed 11 years ago

merzikain commented 12 years ago

I'm trying to make use of S3 and Cloudfront (not sure if I should just stick with one over the other or if this is fine). But when I try to start fileconveyor I get errors saying:

"The transporter module 'cf' could not be found. Tried (cf, transporters.transporter_cf)"

And another with s3 in place of cf.

The transporter_cf.py and transporter_s3.py files both exist in fileconveyor/transporters. I commented out the cloudfront servers and destinations from my config.xml file hoping that it was some kind of conflict with using both but the s3 error remains so I'm not real sure why this is happening.

I have gotten to this point after following https://github.com/wimleers/fileconveyor/issues/107

From that Issue I'm using mnestor's d5e3438 branch.

In addition to the "missing" transporter issue I'm also getting notices about Deprecation of the sets and popen2 modules.

My version of python is 2.6

If there's any other information I can provide let me know. I'd really like to get this running since I have 8 different sites to manage content.

Thanks in advance for any help!

pallinger commented 12 years ago

I get the same error when trying to use the sftp transport:

The transporter module 'sftp' could not be found. Tried (sftp, transporters.transporter_sftp)

It may be some python include path issue, but I am not familiar enough with python to tell how it could be resolved. I check back if I manage to find out...

Also using python 2.6, on debian squeeze.

Update: the symlink_or_copy and ftp transports do seem to load all right. No clue as to why sftp transport does not. The py and pyc files for all three transports are there in the same directory...

wimleers commented 11 years ago

That's … very weird. You'll have to dive deeper into the code to figure out why this is happening. It's not a permissions issue, is it?

pallinger commented 11 years ago

It was definitely not a permissions issue (as all transports have the same permissions). Meanwhile, I gave up using fileconveyor, and I am using lipsync now for the same purpose. It is not as versatile (i.e. only sftp transport available), but it worked quite simply.

wimleers commented 11 years ago

Fair enough. :)

In cases where I don't need File Conveyor's flexibility, I tend to use rsync. That works with SFTP too :) That's got to be even more reliable/mature than lipsync :)

pallinger commented 11 years ago

Actually, lipsync uses rsync, it just adds the inotify layer to it so that changes are propageted relatively quickly. Something similar to fileconveyor.

wimleers commented 11 years ago

@pallinger oh, cool to know! Thanks for sharing :)

yusufhm commented 11 years ago

For anyone still wanting to use this with S3, you must install the Python module django-storages (e.g, sudo easy_install django-storages)

wimleers commented 11 years ago

@yusufhm That's also in the documentation.

yusufhm commented 11 years ago

Agreed; I saw it afterwards, I guess I did not follow the instructions correctly.

wimleers commented 11 years ago

Okay — good :)

If you have suggestions on how to make the documentation better — feel free to create a pull request — I'd be happy to merge it!

efcmeg commented 11 years ago

Installed django-storages still the same error:

2013-02-07 19:11:38,022 - Arbitrator - WARNING - File Conveyor is initializing. 2013-02-07 19:11:38,061 - Arbitrator - WARNING - Loaded config file. /usr/lib/python2.6/site-packages/boto/utils.py:44: DeprecationWarning: The popen2 module is deprecated. Use the subprocess module. import popen2, os, StringIO 2013-02-07 19:11:38,087 - Arbitrator - ERROR - The transporter module 's3' could not be found. Tried (s3, transporters.transporter_s3) TransporterAvailabilityTestError Consult the log file for details

yusufhm commented 11 years ago

@efcmeg, yesterday I had to install this on another server, but it didn't work because the version of Django Storages was too recent; I had to install version 1.1.5 for it to work correctly.

I used this command: sudo easy_install django-storages==1.1.5

jstarcher commented 11 years ago

I'm having the same problem.

Python 2.7.2 (default, Jun 20 2012, 16:23:33)

2013-04-24 13:41:58,881 - Arbitrator                - WARNING  - File Conveyor is initializing.
2013-04-24 13:41:58,884 - Arbitrator                - WARNING  - Loaded config file.
2013-04-24 13:41:58,956 - Arbitrator                - ERROR    - The transporter module 's3' could not be found. Tried (s3, transporters.transporter_s3)

$ pip freeze
Django==1.4.5
boto==1.6b
cssutils==0.9.10
django-cumulus==1.0.8
django-storages==1.1.5
python-cloudfiles==1.7.10
jstarcher commented 11 years ago

I was able to get this working by changing line 21 of arbitrator.py.

diff --git a/fileconveyor/arbitrator.py b/fileconveyor/arbitrator.py
index 394b4b4..2f29a8b 100644
--- a/fileconveyor/arbitrator.py
+++ b/fileconveyor/arbitrator.py
@@ -18,7 +18,7 @@ FILE_CONVEYOR_PATH = os.path.abspath(os.path.dirname(__file__))
 # HACK to make sure that Django-related libraries can be loaded: include dummy
 # settings if necessary.
 if not 'DJANGO_SETTINGS_MODULE' in os.environ:
-    os.environ['DJANGO_SETTINGS_MODULE'] = 'fileconveyor.django_settings'
+    os.environ['DJANGO_SETTINGS_MODULE'] = 'django_settings'

 from settings import *
nathanjo commented 10 years ago

Currently have an issue with this, is there any updates on this? Followed all instruction but still module (cf, sftp, symlink_or_copy) are all not found.

oba11 commented 10 years ago

@nathanjo Yes, uninstalling previous django-storages versions and installing django-storages with vith version 1.1.5 works for me

pip uninstall django-storages
pip install django-storages==1.1.5
rcourtna commented 9 years ago

FWIW, I had to make jstarcher's change, as well as add a SECRET_KEY to the top of django_settings.py