Могут скомпилированные файлы байт-кода (.pyc) быть сгенерированными в другом каталоге? [дубликат]

@client.command(pass_context=True)
async def link(ctx):
    server = client.get_server("server_id")
    link = client.create_invite(destination=server,xkcd=True,max_age=0,max_uses=number)
    await client.say(link)
    #max_age=0-> Never expire link
    #max_uses-> limit to usage the link
    #xkcd-> The URL fragment used for the invite if it is human readable.    
16
задан Community 23 May 2017 в 12:18
поделиться

5 ответов

Этому отвечают в" Способ скомпилировать файлы Python в отдельной папке? "

Короткий ответ: Никакой †“, если Вы не запускаете Python 3.2 или позже †“, видят здесь .

Для разъяснения: Прежде 3.2, Вы можете байт-код компиляции и помещать его в другом месте согласно предложению Brian R. Bondy, но если Вы на самом деле не выполняете его оттуда (а не от папки Вы хотите сохранить нетронутыми), Python все еще произведет байт-код, где .py файлы.

14
ответ дан 30 November 2019 в 21:29
поделиться

Проверьте py_compile модуль , и в особенности:

py_compile.compile(file[, cfile[, dfile[, doraise]]])

cfile является параметром, которым Вы интересуетесь.

Из ссылки выше:

... Байт-код записан в cfile, который значения по умолчанию в файл + 'c'...

7
ответ дан 30 November 2019 в 21:29
поделиться

В случае, если "замусоривание" действительно является Вашей проблемой, можно всегда упаковывать .py, .pyc и/или .pyo файлы в .zip файле и добавлять его к Вашему sys.path.

2
ответ дан 30 November 2019 в 21:29
поделиться

Я, кажется, не забываю читать где-нибудь, что это не возможно и что у Людей Python есть причины того, чтобы не позволить, хотя я не могу помнить где.

РЕДАКТИРОВАНИЕ : извините, я неправильно читал вопрос - что я имел в виду, то, что это не возможно (я думаю) настраивать исполняемый файл Python для помещения его файлов байт-кода в другой каталог по умолчанию. Вы могли всегда писать немного сценария компилятора Python (или находить один, я уверен, что они там), который поместил бы файлы байт-кода в местоположение Вашего выбора.

0
ответ дан 30 November 2019 в 21:29
поделиться

Вы могли записать сценарий, чтобы скомпилировать их и затем переместить их. Что-то как:

for i in `ls *.pyc`
do
 mv $i $DEST_DIR
done

(который может быть сокращен к:

for i in *.pyc
do
    mv $i $DEST_DIR
done

или, удивительно, к

mv *.pyc $DEST_DIR

)

0
ответ дан 30 November 2019 в 21:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: