Я могу установить предварительно сконфигурированный двоичный пакет Perl в своем корневом каталоге?

Вы используете старый пакет с именем cognitive_face , который, к сожалению, ожидает, что входным аргументом будет либо имя файла, либо URL.

К счастью, новое имя пакета azure-cognitiveservices-vision-face поддерживает потоки, поэтому, если вы переключитесь, вы можете сделать что-то вроде следующего:

from azure.cognitiveservices.vision.face import FaceClient
from msrest.authentication import CognitiveServicesCredentials
import cv2
import os

face_key = '...' # your API key
face_endpoint = '...' # your endpoint, e.g. 'https://westus.api.cognitive.microsoft.com'

credentials = CognitiveServicesCredentials(face_key)
client = FaceClient(face_endpoint, credentials)

# img is your unencoded (raw) image, from the camera
img = ...

# buf will be the encoded image
ret,buf = cv2.imencode('.jpg', img)

# stream-ify the buffer
stream = io.BytesIO(buf)

# call the Face API
detected_faces = client.face.detect_with_stream(
    stream,
    return_face_id=True,
    return_face_attributes=['age','gender','emotion'])

# access the response, example:
for detected_face in detected_faces:
    print('{} happiness probability={}'.format(
        detected_face.face_id,
        detected_face.face_attributes.emotion.happiness))

5
задан brian d foy 26 February 2009 в 03:02
поделиться

3 ответа

Это зависит от действительно ли Ваш perl двоичный файл перемещаем. Это - опция времени компиляции. Каков вывод этой команды? Это определяется или нет?

perl -V:userelocatableinc
4
ответ дан 14 December 2019 в 04:48
поделиться

Вы не собираетесь любить этот ответ.

Perl хранит @INC как строки в его двоичном файле. Прежде был userelocatableinc техника для перемещения Perl состояла в том, чтобы сделать поиск и замену на двоичном файле, а также изменение их в Config.pm. Это - то, как ActiveState поставил перемещаемый Perl.

Строки должны остаться тем же размером, как они были прежде, увеличивая любое дополнительное пространство с пустыми байтами. ActiveState обошел бы это путем конфигурирования Perl с префиксом как "/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxTMPPATHxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" или что-то. Это также сделало это действительно однозначным для нахождения в двоичном файле. У Вас нет такой удачи, таким образом, она будет только работать, если текущие пути будут короче, чем пути, Вы хотите заменить их.

Но это слишком сложно. Просто скомпилируйте Perl для себя или источник HP/UX's использования или просто захватите регулярный источник из perl.org. Perl имеет преданного разработчика HP/UX, таким образом, он должен все идти гладко.

5
ответ дан 14 December 2019 в 04:48
поделиться

Можно указать на любой путь интерпретатора, который Вы хотите в первой строке:

!#/my/local/perl 

И если Вы не ищете мобильность через машины, можно установить @INC вручную в сценарии. Я думаю, что существует способ получить его от ENV также, который мог бы быть более портативным.

-1
ответ дан 14 December 2019 в 04:48
поделиться
Другие вопросы по тегам:

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